📄 jkfclientlogger.java
字号:
/**
* $Log: JKFClientLogger.java,v $
* Revision 1.2 2003/01/18 21:57:50 mwulff
* the default initialisation steps from log4j are supressed by settting the
* system property "log4j.defaultInitOverride" to true
*
* Revision 1.1 2003/01/16 13:08:54 mwulff
* initial version
*
* Revision 1.2 2002/12/20 18:49:31 mwulff
* no message
*
* Revision 1.1 2002/12/15 16:51:44 mwulff
* initial checkin
*
*/
package de.fhm.jkf.resource.cl;
import org.apache.log4j.Appender;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Layout;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
/**
* @author marten wulff
*
* * <br><br><center><table border="1" width="80%"><hr>
* <strong><a href="http://jkf.sourceforge.net">The JKF Project</a></strong>
* <p>
* Copyright (C) 2002 by Marten Wulff
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the <a href="http://www.gnu.org/copyleft/lesser.html">
* GNU Lesser General Public License</a> along with this library; if not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
* <hr></table></center>
*/
public class JKFClientLogger {
// Logger instance
private static Logger logger = null;
// layout values
private static final String LOG_PATTERN = "[%t] %-5p (%F:%L) - %m\n";
private static Layout layout = new PatternLayout(LOG_PATTERN);
// values for console appender
private static ConsoleAppender console = null;
private static Level defaultConsoleLevel = Level.ERROR;
// values for file appender
private static DailyRollingFileAppender file = null;
private static Level defaultFileLevel = Level.ERROR;
private final static String LOG_FILENAME = "jkfclient.log";
private final static String LOGFILE_DATE_PATTERN = "'.'yyyy-MM-dd";
// values for JKFAppender
private static JKFAppender remote = null;
static Level defaultRemoteLevel = Level.OFF;
static {
// we dont't want log4j to do the default initialisation steps
// looking for log4j.properties, log4j.xml ...
// because that causes an exception in our LaunchClassLoader
System.setProperty("log4j.defaultInitOverride", "true");
logger = Logger.getLogger("JKFClientLogger");
logger.setAdditivity(false);
// always set the level to the lowest level, logging is configured
// by the threshold value of the appenders
logger.setLevel(Level.DEBUG);
// initialize the appenders
initConsoleAppender();
initFileAppender();
initRemoteAppender();
// the remote appender is added by default to the logger
logger.addAppender(remote);
}
// public wrapper methods
public static boolean isDebugEnabled() {
return logger.isDebugEnabled();
}
public static boolean isInfoEnabled() {
return logger.isInfoEnabled();
}
public static void debug(Object message) {
logger.debug(message);
}
public static void debug(Object message, Throwable t) {
logger.debug(message, t);
}
public static void info(Object message) {
logger.info(message);
}
public static void info(Object message, Throwable t) {
logger.info(message, t);
}
public static void warn(Object message) {
logger.warn(message);
}
public static void warn(Object message, Throwable t) {
logger.warn(message, t);
}
public static void error(Object message) {
logger.error(message);
}
public static void error(Object message, Throwable t) {
logger.error(message, t);
}
public static void fatal(Object message) {
logger.fatal(message);
}
public static void fatal(Object message, Throwable t) {
logger.fatal(message, t);
}
public static void addAppender(Appender toAdd) {
logger.addAppender(toAdd);
}
public static void removeAppender(Appender toRemove) {
logger.removeAppender(toRemove);
}
// methods only package visible
static void addConsoleAppender() {
logger.addAppender(console);
}
static void addFileAppender() {
logger.addAppender(file);
}
// methods for changing the threshold values of the three appenders
static void setConsoleThreshold(Level newThreshold) {
console.setThreshold(newThreshold);
}
static void setFileThreshold(Level newThreshold) {
file.setThreshold(newThreshold);
}
static void setRemoteThreshold(Level newThreshold) {
remote.setThreshold(newThreshold);
}
// private methods for initializing the appenders
private static void initConsoleAppender() {
console = new ConsoleAppender(layout, ConsoleAppender.SYSTEM_OUT);
console.activateOptions();
}
private static void initFileAppender() {
// set the appenders properties
file = new DailyRollingFileAppender();
file.setLayout(layout);
file.setAppend(true);
file.setDatePattern(LOGFILE_DATE_PATTERN);
file.setFile(LOG_FILENAME);
file.setImmediateFlush(true);
file.setThreshold(defaultFileLevel);
// activate the appender
file.activateOptions();
}
private static void initRemoteAppender() {
remote = new JKFAppender();
remote.setThreshold(defaultRemoteLevel);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -