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
021package org.granite.logging;
022
023import java.util.logging.Level;
024
025/**
026 * @author Franck WOLFF
027 */
028public 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.FINER, 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.FINER, 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.FINE, 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.FINE, 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}