【发布时间】:2018-10-17 14:12:35
【问题描述】:
我正在尝试使用 log4j my log4j.properties 在我的非 maven 项目中记录异常
log4j.rootLogger = debug, stdout, FILE
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.FILE = org.apache.log4j.RollingFileAppender
log4j.appender.FILE.maxFileSize = 100kb
log4j.appender.FILE.maxBackupIndex = 2
log4j.appender.file.File=C:/Users/dev/Desktop/log.txt
log4j.appender.FILE.Threshold = debug
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
并使用了balusC回答中提到的异常处理程序和工厂
public class ErpExceptionHandler extends ExceptionHandlerWrapper {
private ExceptionHandler wrapped;
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(ErpExceptionHandler.class);
public ErpExceptionHandler(ExceptionHandler wrapped) {
this.wrapped = wrapped;
}
@Override
public void handle() throws FacesException {
FacesContext facesContext = FacesContext.getCurrentInstance();
for (Iterator<ExceptionQueuedEvent> iter = getUnhandledExceptionQueuedEvents().iterator(); iter.hasNext();) {
Throwable exception = iter.next().getContext().getException();
logger.error("An exception occurred!", exception);
}
getWrapped().handle();
}
@Override
public ExceptionHandler getWrapped() {
return wrapped;
}
}
而我的日志文件仍然是空的,我在搞什么???
【问题讨论】:
-
我看不出这与 jsf 有什么关系...需要详细说明吗?