Log4j未登录文件

时间:2014-04-17 12:44:23

标签: java logging log4j

我有以下log4j配置:

# Root logger option
log4j.rootLogger=file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.Threshold=WARN
log4j.appender.file.File=logs/log.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.Append=true
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.Threshold=INFO
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

登录到stdout工作正常但没有任何内容记录到我的文件中。 该文件有明确的输出但没有任何反应。

为什么他没有登录我的档案?

3 个答案:

答案 0 :(得分:1)

您可以像这样更改配置文件。

# Root logger option
log4j.rootLogger= ALL,file, stdout

并且 log4j.appender.stdout.Threshold = INFO 更改级别,如所有其打印所有级别日志TRACE为致命

答案 1 :(得分:0)

一个原因可能是stdout appender(INFO)的阈值低于文件appender(WARN)。因此,如果只记录INFO消息,则只能在stdout中看到它们,而不是在文件中。

答案 2 :(得分:0)

这取决于你如何运行它。这只是一个普通的java程序吗?例如,如果您尝试在容器(例如Karaf)中运行它,那么有时它们可​​以设置特殊的日志目的地。