我正在尝试在日志文件中打印异常的堆栈跟踪,但无济于事。配置文件是这样的:
<?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);
}
}
答案 0 :(得分:1)
logger.error("Class exception: " + e);
您仅构建一个要打印的字符串。 toString
的Exception继承自Throwable
,在其中打印Exception类的名称和消息。将其添加到字符串“ Class exception:”中以形成一个要打印的字符串。
您要将异常作为参数传递给logger.error
logger.error("Class exception: " + e, e);