我有一个普通的INFO级别应用日志。我需要的是另外记录所有错误级别的事件,以单独的错误日志。我正在使用这样的配置:
<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>
此配置仅记录错误。如果我首先放置信息级别记录器,则它将仅记录到一般附加程序,但错误记录器将无法工作。我想让他们两个都工作。
您需要做的是只有一个<logger>定义了INFO级别的定义,但是在您的两个追加器定义中,您需要相应地设置其阈值,例如
<logger>
<appender name="ERROR_FILE"> <param name="Threshold" value="ERROR"/> </appender> <appender name="GENERAL"> <param name="Threshold" value="INFO"/> </appender>
然后,将两个追加程序添加到记录器中:
<logger name="com.acme"> <level value="INFO"/> <appender-ref ref="ERROR_FILE"/> <appender-ref ref="GENERAL"/> </logger>
现在进入记录器的日志条目将被发送到两个附加程序,但是由于它们具有不同的独立阈值,因此ERROR_FILE附加程序将仅记录ERROR及更高版本。