log4j 不同层次的细节
log4j different levels of details
我正在使用 log4j 1.2,我想实现以下行为:
我希望能够从包中的所有 类 登录。日志应该以详细版本(包括信息和调试消息)写入文件,但我想接收一个简短版本(错误和致命错误)作为字符串。
从文档中我猜想我可能必须定义两个不同的记录器实例,它们是祖先或彼此,并为它们分配附加程序。但我既不知道细节,也不知道这是否是实现此行为的预期方式。
有人可以给我提示吗?
您应该能够使用相同的记录器并仅对处理程序应用过滤器,即将控制台处理程序(我假设您的意思是 "as String")的日志级别设置为 ERROR
.
只定义一个影响两个文件附加程序的记录器:一个具有级别错误,另一个具有调试级别。级别过滤将在appender中完成。
<appender name="DebugAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/debug.log" />
<param name="MaxBackupIndex" value="5" />
<param name="MaxFileSize" value="5MB" />
<param name="threshold" value="debug" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %t %-5p %c - %m%n" />
</layout>
</appender>
<appender name="ErrorAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/error.log" />
<param name="MaxBackupIndex" value="5" />
<param name="MaxFileSize" value="5MB" />
<param name="threshold" value="error" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %t %-5p %c - %m%n" />
</layout>
</appender>
<logger name="mylogger">
<level value="debug" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="ErrorAppender" />
</logger>
我正在使用 log4j 1.2,我想实现以下行为:
我希望能够从包中的所有 类 登录。日志应该以详细版本(包括信息和调试消息)写入文件,但我想接收一个简短版本(错误和致命错误)作为字符串。
从文档中我猜想我可能必须定义两个不同的记录器实例,它们是祖先或彼此,并为它们分配附加程序。但我既不知道细节,也不知道这是否是实现此行为的预期方式。
有人可以给我提示吗?
您应该能够使用相同的记录器并仅对处理程序应用过滤器,即将控制台处理程序(我假设您的意思是 "as String")的日志级别设置为 ERROR
.
只定义一个影响两个文件附加程序的记录器:一个具有级别错误,另一个具有调试级别。级别过滤将在appender中完成。
<appender name="DebugAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/debug.log" />
<param name="MaxBackupIndex" value="5" />
<param name="MaxFileSize" value="5MB" />
<param name="threshold" value="debug" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %t %-5p %c - %m%n" />
</layout>
</appender>
<appender name="ErrorAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/error.log" />
<param name="MaxBackupIndex" value="5" />
<param name="MaxFileSize" value="5MB" />
<param name="threshold" value="error" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %t %-5p %c - %m%n" />
</layout>
</appender>
<logger name="mylogger">
<level value="debug" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="ErrorAppender" />
</logger>