在控制台上输出Log4j而不是配置文件

时间:2011-07-01 07:46:41

标签: java file configuration console log4j

我将Log4j配置为登录到文件,但它正在登录到stdout。 它会创建日志文件,但不会写入日志文件,而是写入stdout。

这是我的配置文件:

log4j.rootCategory=INFO, file, mail
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/path-to/jobs-batch.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[jobs-batch] %p [%t] %c{1}.%M(%L) | %m%n

log4j.logger.org.springframework.jdbc=WARN

# Configuration for receiving e-mails when ERROR messages occur.
log4j.appender.mail=org.apache.log4j.net.SMTPAppender
log4j.appender.mail.To=xxx@xxx.com
log4j.appender.mail.From=xxx@xxx.com
log4j.appender.mail.SMTPHost=mail.xxx.de
log4j.appender.mail.Threshold=ERROR
log4j.appender.mail.Subject=Jobs Batch Error
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
log4j.appender.mail.layout.ConversionPattern=%d  %-5p %c %x - %m%n

任何想法?

由于

3 个答案:

答案 0 :(得分:1)

根据您的需求进行调整:

log4j.rootCategory=DEBUG, C     
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{MMddyyyy HH:mm} %-5p %c{1}:%L - %m%n
log4j.appender.C.Target=System.out

答案 1 :(得分:1)

要检查的事项:

  • 您的Log4j属性文件的名称是什么?默认值为log4j.properties,这是Log4j库在启动时将查找的内容。
  • 与Thorbjorn在评论中提出的问题相关,log4j属性文件位于何处?将它放在默认包中将确保找到它(默认情况下Log4j搜索类路径)。
  • 在启动JVM时,可以选择使用log4j.configuration属性指定log4j属性文件的位置。

答案 2 :(得分:0)

我自己也很愚蠢。 我正在使用-Dlog4j.configuration设置我的文件。 但我还是以编程方式配置log4j以使用SAME配置文件。

我仍然不明白为什么它的表现如此,因为我只是设置了两次SAME配置文件。但是,一旦我按预期的方式完成了它。