📄 logger.java
字号:
/**
* JWAP - A Java Implementation of the WAP Protocols
* Copyright (C) 2001-2004 Niko Bender
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package net.sourceforge.jwap.util;
import java.util.Enumeration;
/**
* This class is a wrapper for the Log4J Logger. If Log4J is available on
* the classpath, it will forward calls to Log4Js Logger.
*
* @author Michel Marti
*/
public class Logger
{
private static boolean log4jAvailable;
private static Logger voidLogger;
private Logger(){}
static
{
// Check if log4j is available...
try {
Class.forName("org.apache.log4j.Logger");
log4jAvailable=true;
} catch(Exception unknown) {
voidLogger = new Logger();
}
}
public static Logger getLogger(Class category)
{
return getLogger(category==null?null:category.getName());
}
public static Logger getLogger(String category)
{
if( log4jAvailable ) {
return new Log4jLogger(category);
} else {
return voidLogger;
}
}
public void debug(Object msg) {}
public void debug(Object msg, Throwable throwable) {}
public void error(Object msg) {}
public void error(Object msg, Throwable throwable) {}
public void fatal(Object msg) {}
public void fatal(Object msg, Throwable throwable) {}
public void info(Object msg) {}
public void info(Object msg, Throwable throwable) {}
public boolean isDebugEnabled() {
return false;
}
public boolean isInfoEnabled() {
return false;
}
public void warn(Object msg) {}
public void warn(Object msg, Throwable throwable) {}
/**
* Initialize the logging system if it is not yet initalized.
*/
public static void initLogSystem(boolean verbose) {
if(log4jAvailable) {
Log4jLogger.initLogSystem(verbose);
}
}
private static final class Log4jLogger extends Logger
{
private org.apache.log4j.Logger logger;
Log4jLogger(String category) {
logger = org.apache.log4j.Logger.getLogger(category);
}
public void debug(Object msg, Throwable throwable) {
logger.debug(msg,throwable);
}
public void debug(Object msg) {
logger.debug(msg);
}
public void error(Object msg, Throwable throwable) {
logger.error(msg,throwable);
}
public void error(Object msg) {
logger.error(msg);
}
public void fatal(Object msg, Throwable throwable) {
logger.fatal(msg,throwable);
}
public void fatal(Object msg) {
logger.fatal(msg);
}
public void info(Object msg, Throwable throwable) {
logger.info(msg, throwable);
}
public void info(Object msg) {
logger.info(msg);
}
public boolean isDebugEnabled() {
return logger.isDebugEnabled();
}
public boolean isInfoEnabled() {
return logger.isInfoEnabled();
}
public void warn(Object msg, Throwable throwable) {
logger.warn(msg, throwable);
}
public void warn(Object msg) {
logger.warn(msg);
}
public static final void initLogSystem(boolean verbose)
{
if (!isLogSystemConfigured()) {
org.apache.log4j.BasicConfigurator.configure();
org.apache.log4j.Logger.getRootLogger().removeAllAppenders();
org.apache.log4j.Logger.getRootLogger().addAppender(new org.apache.log4j.ConsoleAppender(
new org.apache.log4j.PatternLayout("jWAP:\t%m%n"), org.apache.log4j.ConsoleAppender.SYSTEM_OUT));
org.apache.log4j.Logger.getRootLogger().setLevel(verbose ? org.apache.log4j.Level.INFO: org.apache.log4j.Level.WARN);
}
}
private static final boolean isLogSystemConfigured() {
Enumeration enum = org.apache.log4j.Logger.getRoot().getAllAppenders();
if ((enum != null) &&
!(enum instanceof org.apache.log4j.helpers.NullEnumeration)) {
return true;
} else {
Enumeration loggers = org.apache.log4j.LogManager.getCurrentLoggers();
while (loggers.hasMoreElements()) {
org.apache.log4j.Logger c = (org.apache.log4j.Logger) loggers.nextElement();
if (!(c.getAllAppenders() instanceof org.apache.log4j.helpers.NullEnumeration)) {
return true;
}
}
}
return false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -