将大项目移植到 log4j2 后,我注意到异常记录不起作用。这样的代码
logger.error("Error occurred", e);
不记录异常调用堆栈。上面一行的日志只包含:
21/07/2013 15:51:34 ERROR [MyTask-1] [MyManager] Error occurred
请帮助配置记录器。
更新: 我的 log4j2.xml 通常看起来像这样(我删除了其余的附加程序和记录器):
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="server" monitorInterval="30">
<appenders>
<!-- ################# All Appender ############################### -->
<RollingFile name="AllAppender" fileName="${sys:workspace}/logs/all.log" filePattern="${sys:workspace}/archive/logs/all_%d{yyyy-MM-dd_HH}.log">
<PatternLayout>
<pattern>%d{dd/MM/yyyy HH:mm:ss} %-5p [%t] [%c{1}] %m%n</pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="50"/>
</RollingFile>
</appenders>
<loggers>
<!-- #################################################################################################### -->
<!-- ################################### Loggers definitions ############################################ -->
<!-- #################################################################################################### -->
<logger name="com" level="debug">
<appender-ref ref="AllAppender" />
</logger>
<root level="debug">
<appender-ref ref="AllAppender"/>
</root>
</loggers>
顺便说一下,monitorInterval 对我不起作用。我必须重新启动 tomcat 才能更新记录器配置。
最佳答案
您使用的是什么版本的 log4j2?我记得这是旧测试版中的一个问题,但它已在大约 beta5 左右修复...如果您使用的是最近的测试版,您可以提交错误报告吗?
作为解决方法,您可以将模式末尾的 %m%n
替换为 %m%ex%n
。
关于java - 日志记录异常问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17762964/