1 回答
TA贡献1851条经验 获得超5个赞
首先,您应该知道您想要获得什么日志记录结果。如果您记录某些内容,那么您的代码是否递归并不重要,那么您就会将其记录在日志中。
因此,如果您确实必须在循环内记录事件,那么我想,您可能想要拆分重要事件,而不是。
例如(使用 slf4j 和 logback):以正常方式记录事件。
LOGGER.trace("log message");
使用信息级别和上限记录重要内容,使用跟踪记录所有其他内容,然后添加两个具有不同日志级别的附加程序。日志回.xml:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>@project.artifactId@.log</file>
<append>true</append>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<charset>UTF-8</charset>
<pattern>%-8level %-25d{YYYY-MM-dd HH:mm:ss.SSS} %logger - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE_TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>@project.artifactId@_trace.log</file>
<append>true</append>
<encoder>
<charset>UTF-8</charset>
<pattern>%-8level %-25d{YYYY-MM-dd HH:mm:ss.SSS} %logger - %msg%n</pattern>
</encoder>
</appender>
<root level="ERROR">
<appender-ref ref="FILE" />
<appender-ref ref="FILE_TRACE" />
</root>
在这种情况下,一个日志文件将包含所有内容,而第二个日志文件仅包含重要数据(错误、警告和信息)。
因此,使用 INFO 级别的文件来监视重要的事情会更容易,并且您将拥有 TRACE 级别的完整登录文件。
添加回答
举报