java - 在 Tomcat 中配置 log4j.xml

标签 java log4j

我想为在 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/

相关文章:

java - 更改 Apache Storm 拓扑的 Log4J 配置

java - 在客户端和服务器之间发送字符串时出错

java - 每个使用 Log4j 的用户都有不同的日志

java - 测试时的 log4j 配置仅显示错误

java - 如果某些条件在 Java 8 中匹配,如何从 forEach 退出

java.lang.NoClassDefFoundError : jnr/posix/POSIXHandler while starting up cassandra based spring-boot app

java - log4j 找不到附加程序

java - android java求解字符串格式的方程

java - 为我的大学项目开发​​桌面应用程序

java - 未经检查将 'java.lang.object' 转换为 'java.util.list '