我想为在 tomcat 中运行的一个简单应用程序配置日志,我想将除错误级别日志之外的所有日志发送到一个文件,并将错误发送到另一个文件。
我应该如何配置 log4j.xml 以使其工作?
<appender name="regular-container" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="regularLogs.log" />
</appender>
<appender name="error-container" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="errorLogs.log" />
</appender>
<logger name="regular-container">
?????????????????????
</logger>
<logger name="error-container">
?????????????????????
</logger>
最佳答案
试试这个 log4j.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="errorsOnly" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="errorLogs.log" />
<param name="threshold" value="ERROR" />
</appender>
<appender name="regular" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="regularLogs.log" />
<param name="threshold" value="DEBUG" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="errorsOnly" />
<appender-ref ref="regular" />
</root>
</log4j:configuration>
请注意,这包括 FATAL logging in errorsOnly,尽管我认为这没问题。将 errorsOnly 首先设置为 ERROR 意味着错误级别或更高级别由 errorsOnly 处理。 DEBUG 或更高版本尚未由 errorsOnly 处理,然后由常规处理。我找到了一个 similar issue再举一个例子。
关于java - 在 Tomcat 中配置 log4j.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44408120/