[英]Log4j static logger
我試圖用log4j做一個靜態記錄器。 使用PropertyConfigurator.configureAndWatch(LOG4J_CONFIG_FILE);
讀取屬性文件時,我沒有任何錯誤PropertyConfigurator.configureAndWatch(LOG4J_CONFIG_FILE);
,但是如果我想使用例如debug進行登錄
case DEBUG:
System.out.println("debug");
log.debug(message);
break;
什么也沒發生 我創建了一個system.out.println,以查找是否已到達代碼,即已打印出println。 有人可以給我一個提示,為什么記錄儀不起作用?
這是完整的代碼。
import org.apache.log4j.Appender;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Layout;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.spi.ErrorHandler;
import org.apache.log4j.spi.Filter;
import org.apache.log4j.spi.LoggingEvent;
public class Logging {
private static final String LOG4J_CONFIG_FILE = "/config/log4j.properties";
private static Logging instance;
private Logger log;
public enum level {
DEBUG, INFO, WARN, ERROR, FATAL
};
/**
* Private Constructor for Logging.
*/
private Logging() {
PropertyConfigurator.configureAndWatch(LOG4J_CONFIG_FILE);
}
/**
* Returns an instance of the Logger.
*/
public static synchronized Logging getInstance() {
if (instance == null)
instance = new Logging(Logger.getLogger(Logging.class));
return instance;
}
/**
* Method for doing the logging of actions in the system.
*
* @param l The preciseness level of the logging.
* @param message The message to print.
*/
public void log(Logging.level l, String message) {
switch (l) {
case WARN:
log.warn(message);
break;
case ERROR:
log.error(message);
break;
case DEBUG:
System.out.println("debug");
log.debug(message);
break;
case FATAL:
log.fatal(message);
break;
default:// INFO
log.info(message);
break;
}
}
public Logging(Logger logger) {
this();
setLogger(logger);
}
private void setLogger(Logger log) {
this.log = log;
}
}
更高的是log4j.properties
# Root logger option
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C://loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
根據我的評論,未顯示DEBUG
消息的原因是錯誤的配置。
要使其工作,請將第一行更改為以下內容:
log4j.rootLogger=DEBUG, file
這將使所有級別高於或等於DEBUG
消息輸出到您的文件。
您可以在以下手冊中閱讀所有相關內容: http : //logging.apache.org/log4j/1.2/manual.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.