繁体   English   中英

使用log4j记录jsf异常

[英]logging jsf exceptions with log4j

我正在尝试使用log4j我的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;
    }

}

而且我的日志文件仍然是空的,我在这里弄什么?

似乎您已启用log4j配置以在调试级别登录。 但是,不包括正在记录的实际代码。 可能在登录代码时未使用DEBUG级别(或适当的级别)吗?


更新:请尝试以下操作:-log4j.appender.file.File = C:\\\\ Users \\\\ dev \\\\ Desktop \\\\ log.txt(此处使用双反斜杠代替正斜杠)

另外,请尝试在所有条件语句/ if condition / etc之外抛出新的Exception,以简化并检查日志记录是否有效。 然后,您必须捕获并记录此引发的异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM