Gav*_*avi 5 logback uncaught-exception
我用各种框架(jsf,Spring,Hibernate)编写了一个web应用程序,我的logger库是Logback和slf4j.
目前我无法在日志文件中显示未捕获的异常(例如NullPointers).
这是我的logBack.xml
<configuration debug="true">
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${CATALINA_HOME}/logs/jsfDemo.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>jsfDemo.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
当我用uc = null执行这几行代码时
public void nullPointerMethod(UserCredential uc){
LOG.debug(">>login(uc)");
if(uc == null){
throw new NullPointerException();
}else{
//do something
}
LOG.debug("<<login(uc)");
}
Run Code Online (Sandbox Code Playgroud)
在logFile我只看到
>>login(uc)
Run Code Online (Sandbox Code Playgroud)
但是我想看看NullPointer的stackTrace.怎么了?
您可以使用SLF4JBridgeHandler:
本质上,这个想法是在根记录器上安装 SLF4JBridgeHandler 的实例作为系统中唯一的 JUL 处理程序。随后,SLF4JBridgeHandler 实例将重定向所有 JUL 日志记录,并重定向到基于 SLF4J API 的
基本上你只需要调用SLF4JBridgeHandler.install(); 在你的 main 方法中并以这种方式配置 logback:
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4939 次 |
| 最近记录: |