我有一个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文件
答案 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排除(记录器)?