【问题标题】:Log4j same log file multiple webapp versionsLog4j 相同的日志文件多个 webapp 版本
【发布时间】:2017-03-28 13:38:48
【问题描述】:

我有一个 web 应用程序,我两次部署到 tomcat 服务器(它有不同的版本,比如说 1.0 和 2.0)。这个 webapp 配置了 log4j。 log4j 的 jar 文件位于 webapp 的 WEB-INF/lib 文件夹中,而记录器的属性文件是从外部配置路径中读取的。 我希望两个 webapp 都将信息记录在同一个 .log 文件中,但实际发生的情况是只有一个(1.0 或 2.0)正在登录到指定的文件,而另一个什么也不记录。 我有点相信这是因为在 webapp 初始化期间如何初始化 log4j,但我不确定如何让 1.0 和 2.0 都登录到同一个文件中。有任何想法吗? 这是我的属性文件:

log4j.rootLogger=DEBUG, FILE

log4j.additivity.ApplicationLog=false

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %x [%p] [%C{1}.%M] %m%n

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=/external/path/myLogFile.log
log4j.appender.FILE.MaxFileSize=50000KB
log4j.appender.FILE.MaxBackupIndex=10
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %x [%p] [%C{1}.%M] %m%n

LE:使用 tomcat 7

LE2:可能是因为 rollingFileAppender。第二个应用程序似乎继续写入 .log.1 文件,而第一个应用程序写入新的 .log 文件

【问题讨论】:

    标签: java tomcat logging log4j


    【解决方案1】:

    Log4j 为此目的支持 SocketAppender (https://logging.apache.org/log4j/1.2/faq.html#a3.3)。您可以将应用程序的两个版本都记录到 SocketAppender,并配置 SimpleSocketServer 以接收信息并将日志条目写入磁盘。

    有关示例,请参阅 log4j: How to use SocketAppender?

    【讨论】:

      【解决方案2】:

      也许您应该尝试删除不需要的依赖项 Maven 排除(记录器)?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-20
        • 1970-01-01
        • 2012-10-12
        • 1970-01-01
        • 2011-06-12
        • 2015-04-27
        • 1970-01-01
        相关资源
        最近更新 更多