Log4j不会写入文件,也无法禁用spring日志

时间:2017-06-27 21:18:57

标签: java logging log4j

我有以下问题:

我有一个apache tomcat 7.0.72的环境,我有三个日志,cmfront,cmback和catalina.out。

两者的配置(cmfront和cmback)是相同的,cmfront:

# Root logger option
log4j.rootLogger=OFF

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/CmFront.log
log4j.appender.file.MaxFileSize=20MB
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} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.logger.CmFront=INFO,file,stdout

和cmback:

# Root logger option
log4j.rootLogger=OFF

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/CmBack.log
log4j.appender.file.MaxFileSize=20MB
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} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.logger.CmBack=INFO,file,stdout
log4j.logger.o=OFF

然而,当我部署cmfront war时,我部署没有任何问题,但是当我尝试使用cmback时,我的文件不会写任何内容并且还有以下日志记录行:

16:08:28.768 [localhost-startStop-1] DEBUG o.s.c.e.PropertySourcesPropertyResolver - Searching for key 'spring.liveBeansView.mbeanDomain' in [systemEnvironment]
16:08:28.768 [localhost-startStop-1] DEBUG o.s.c.e.PropertySourcesPropertyResolver - Could not find key 'spring.liveBeansView.mbeanDomain' in any property source. Returning [null]

还有很多这样的行,我的问题是为什么在一次战争中日志属性工作并且不打印os ...调试行,另一方面日志不会被写入并且还会打印很多调试行,如果配置相同?

1 个答案:

答案 0 :(得分:0)

属性不是特定于应用程序但与弹簧相关的属性

如果您配置了与mbean或其他任何相关的任何spring bean,我认为只要应用程序没有影响,您就可以忽略它们。

就记录而言,

尝试以下方法 log4j.rootLogger = INFO,文件,标准输出

你设置root logger,因为你没有像com。****。com那样定义任何特定的记录器,你的所有日志都应该通过root logger。

要使日志生效,您应该启用根记录器。

这是我的猜测可能不是确切答案