是否可以在tomcat 5.5安装程序中使用单个log4j jar文件,它可以被多个Web应用程序使用,并且每个webapp都有单独的日志记录?
我写了大约8个不同的webapps,其中log4j属性文件唯一真正的区别是日志文件名.但是,如果我尝试将log4j从webapp WEB-INF/lib目录移动到tomcat5 shared/lib目录,我会遇到问题.
所有属性文件基本上与下面的属性文件相同,我只是在代码中使用System.setProperty("file.name",)设置file.name.真的没必要,但我想要为所有组件使用单个属性文件.
log4j.rootLogger=DEBUG, LogFile
# stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# LogFile
log4j.appender.LogFile=org.apache.log4j.RollingFileAppender
log4j.appender.LogFile.File=${file.name}
log4j.appender.LogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.LogFile.MaxFileSize=500KB
log4j.appender.LogFile.MaxBackupIndex=5
log4j.appender.LogFile.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Run Code Online (Sandbox Code Playgroud)
基本上对于我想要记录到单独文件的每个组件,但问题是如果我在shared/lib目录下包含log4j,无论先访问哪个webapp,都会有效地定义将由所有人使用的日志文件的webapps.即我不能使用单独的配置.
我知道的替代方案:将log4j放入每个war文件的WEB-INF/lib目录中,这样我就可以为每个webapp获得单独的配置.
将上面的"LogFile"引用更改为特定于每个webapp,以便有效地为每个属性文件定义单独的配置.这似乎避免了以下错误" log4j:ERROR A"org.apache.log4j.RollingFileAppender"对象不能分配给"org.apache.log4j.Appender"变量. "
即使用以下内容:
对于WebApp1
log4j.rootLogger=DEBUG, LogFileWebapp1
# stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# LogFile
log4j.appender.LogFileWebapp1=org.apache.log4j.RollingFileAppender
log4j.appender.LogFileWebapp1.File=${file.name}
log4j.appender.LogFileWebapp1.layout=org.apache.log4j.PatternLayout
log4j.appender.LogFileWebapp1.MaxFileSize=500KB
log4j.appender.LogFileWebapp1.MaxBackupIndex=5
log4j.appender.LogFileWebapp1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Run Code Online (Sandbox Code Playgroud)
对于WebApp2
log4j.rootLogger=DEBUG, LogFileWebapp2
# stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# LogFile …Run Code Online (Sandbox Code Playgroud)