001    /*
002      GRANITE DATA SERVICES
003      Copyright (C) 2011 GRANITE DATA SERVICES S.A.S.
004    
005      This file is part of Granite Data Services.
006    
007      Granite Data Services is free software; you can redistribute it and/or modify
008      it under the terms of the GNU Library General Public License as published by
009      the Free Software Foundation; either version 2 of the License, or (at your
010      option) any later version.
011    
012      Granite Data Services is distributed in the hope that it will be useful, but
013      WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
014      FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
015      for more details.
016    
017      You should have received a copy of the GNU Library General Public License
018      along with this library; if not, see <http://www.gnu.org/licenses/>.
019    */
020    
021    package org.granite.logging;
022    
023    import java.util.logging.Level;
024    
025    /**
026     * @author Franck WOLFF
027     */
028    public class JdkLogger extends Logger {
029    
030        ///////////////////////////////////////////////////////////////////////////
031        // Constructor.
032    
033        public JdkLogger(String name, LoggingFormatter formatter) {
034            super(java.util.logging.Logger.getLogger(name), formatter);
035        }
036    
037        ///////////////////////////////////////////////////////////////////////////
038        // Utility getter.
039    
040        @Override
041            protected java.util.logging.Logger getLoggerImpl() {
042            return (java.util.logging.Logger)super.getLoggerImpl();
043        }
044    
045        ///////////////////////////////////////////////////////////////////////////
046        // Logging methods.
047    
048        @Override
049            public void info(String message, Object... args) {
050            if (isInfoEnabled())
051                getLoggerImpl().log(Level.INFO, getFormatter().format(message, args));
052        }
053    
054        @Override
055        public void info(Throwable t, String message, Object... args) {
056            if (isInfoEnabled())
057                getLoggerImpl().log(Level.INFO, getFormatter().format(message, args), t);
058        }
059    
060        @Override
061        public void trace(String message, Object... args) {
062            if (isTraceEnabled())
063                getLoggerImpl().log(Level.FINE, getFormatter().format(message, args));
064        }
065    
066        @Override
067        public void trace(Throwable t, String message, Object... args) {
068            if (isTraceEnabled())
069                getLoggerImpl().log(Level.FINE, getFormatter().format(message, args), t);
070        }
071    
072        @Override
073        public void warn(String message, Object... args) {
074            if (isWarnEnabled())
075                getLoggerImpl().log(Level.WARNING, getFormatter().format(message, args));
076        }
077    
078        @Override
079        public void warn(Throwable t, String message, Object... args) {
080            if (isWarnEnabled())
081                getLoggerImpl().log(Level.WARNING, getFormatter().format(message, args), t);
082        }
083    
084        @Override
085        public void debug(String message, Object... args) {
086            if (isDebugEnabled())
087                getLoggerImpl().log(Level.FINER, getFormatter().format(message, args));
088        }
089    
090        @Override
091        public void debug(Throwable t, String message, Object... args) {
092            if (isDebugEnabled())
093                getLoggerImpl().log(Level.FINER, getFormatter().format(message, args), t);
094        }
095    
096        @Override
097        public void error(String message, Object... args) {
098            if (isErrorEnabled())
099                getLoggerImpl().log(Level.SEVERE, getFormatter().format(message, args));
100        }
101    
102        @Override
103        public void error(Throwable t, String message, Object... args) {
104            if (isErrorEnabled())
105                getLoggerImpl().log(Level.SEVERE, getFormatter().format(message, args), t);
106        }
107    
108        @Override
109        public void fatal(String message, Object... args) {
110            if (isFatalEnabled())
111                getLoggerImpl().log(Level.SEVERE, getFormatter().format(message, args));
112        }
113    
114        @Override
115        public void fatal(Throwable t, String message, Object... args) {
116            if (isFatalEnabled())
117                getLoggerImpl().log(Level.SEVERE, getFormatter().format(message, args), t);
118        }
119    
120        ///////////////////////////////////////////////////////////////////////////
121        // Configuration.
122        
123        @Override
124        public void setLevel(org.granite.logging.Level level) {
125            Level jdkLevel = null;
126            switch (level) {
127                    case FATAL: jdkLevel = Level.SEVERE; break;
128                    case ERROR: jdkLevel = Level.SEVERE; break;
129                    case INFO: jdkLevel = Level.INFO; break;
130                    case TRACE: jdkLevel = Level.FINER; break;
131                    case DEBUG: jdkLevel = Level.FINE; break;
132                    case WARN: jdkLevel = Level.WARNING; break;
133                    default: throw new IllegalArgumentException("Unknown logging level: " + level);
134            }
135            getLoggerImpl().setLevel(jdkLevel);
136        }
137    
138        @Override
139        public boolean isDebugEnabled() {
140            return getLoggerImpl().isLoggable(Level.FINE);
141        }
142    
143        @Override
144        public boolean isErrorEnabled() {
145            return getLoggerImpl().isLoggable(Level.SEVERE);
146        }
147    
148        @Override
149        public boolean isFatalEnabled() {
150            return getLoggerImpl().isLoggable(Level.SEVERE);
151        }
152    
153        @Override
154        public boolean isInfoEnabled() {
155            return getLoggerImpl().isLoggable(Level.INFO);
156        }
157    
158        @Override
159        public boolean isTraceEnabled() {
160            return getLoggerImpl().isLoggable(Level.FINER);
161        }
162    
163        @Override
164        public boolean isWarnEnabled() {
165            return getLoggerImpl().isLoggable(Level.WARNING);
166        }
167    }