Log4j相同的日志文件有多个webapp版本

时间:2017-03-28 13:38:48

标签: java tomcat logging log4j

我有一个webapp,我将其部署到tomcat服务器两次(它有不同的版本,比如1.0和2.0)。此webapp配置了log4j。 log4j的jar文件位于webapp的WEB-INF / lib文件夹中,而记录器的属性文件则从外部配置路径中读取。 我希望这两个webapps都能在同一个.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文件

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:-1)

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