我有一个正常的信息级日志的应用程序。我需要的是另外记录所有错误级别事件到单独的错误日志。我正在使用这样的配置:
<logger name="com.acme">
<level value="error"/>
<appender-ref ref="error"/>
</logger>
<logger name="com.acme">
<level value="info"/>
</logger>
<root>
<level value="warn"/>
<appender-ref ref="general"/>
</root>
此配置仅记录错误。如果我把信息级记录器放在第一位,那么它将只记录到一般的附加器,但错误记录器将不工作。我想让他们两个都工作。
5条答案
按热度按时间vaqhlq811#
您需要做的是有一个单独的
<logger>
定义,并定义INFO级别,但是在两个appender定义中,您需要相应地设置它们的阈值,例如:然后将这两个appender添加到日志记录器中:
现在转到日志记录器的日志条目将被发送到两个附加器,但是由于它们具有不同的独立阈值,ERROR_FILE附加器将仅记录ERROR及以上。
j8ag8udp2#
完整的工作解决方案,包括文件名中的日期:
qpgpyjmq3#
你需要使用log4j过滤器:
这样,您就可以分别为每个级别创建日志文件。
h7wcgrx34#
如果您使用的是log4j2和XML格式的配置,ThresholdFilter是一个很好的解决方案。
下面是一个示例:
fsi0uk1n5#
实际上,你可以使用.properties文件来实现;你不必使用.xml文件: