[英]log4j2 can't write exception trace in log file
我正在尝试在日志文件中打印异常的堆栈跟踪,但无济于事。 配置文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{dd-MM-YYYY HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.zip">
<PatternLayout>
<alwaysWriteExceptions>false</alwaysWriteExceptions>
<pattern>%d{dd-MM-YYYY HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg %n %ex</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="WARN">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
%ex被忽略
这是产生错误的代码。
public void getSingle(){
try{
//cut
}catch (Exception e){
//program enter in this exception
e.printStackTrace();
UtilsService.openAlertDialog(resources.getString("title.error"),null,UtilsService.getExceptionMessage(e),Alert.AlertType.ERROR);
logger.error("Class exception: " + e);
}
}
logger.error("Class exception: " + e);
您仅在构造一个要打印的字符串。 Exception的toString
继承自Throwable
,在其中打印Exception类的名称和消息。 这被添加到字符串“ Class exception:”中以形成一个要打印的字符串。
您想将异常作为参数传递给logger.error
logger.error("Class exception: " + e, e);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.