繁体   English   中英

如何使log4j记录到文件并打印到控制台

[英]How to make log4j record to a file and print to console

我可以使日志进入控制台,但似乎无法使其进入日志文件。 这是我的properties文件。

log4j.rootLogger=DEBUG, LOG , stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d{d/MM/yy HH:mm:ss}:%m%n
# log4j.appender.LOG.Threshold=INFO

log4j.appender.LOG=org.apache.log4j.RollingFileAppender
log4j.appender.LOG.File=C:\dev\harry\data\logs\core.log
log4j.appender.LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.LOG.Append=true
log4j.appender.LOG.layout.ConversionPattern=%5p %d{d/MM/yy HH:mm:ss}:%m%n
# log4j.appender.LOG.Threshold=INFO

问题在于您的单个\\应该是\\\\。 在大多数属性文件中都是如此。

文件路径中的\\存在一些问题需要修复。 语法有点晦涩难懂,但是登录到多个位置的方法是将命名的日志附加程序附加到根记录程序。 在此示例中是:

log4j.rootLogger=DEBUG, LOG , stdout

DEBUG是用于根记录程序的记录级别(阈值过滤器)。

LOG是日志附加程序的名称

stdout是第二个附加程序的名称

日志附加程序由指定

log4j.appender.{logging-appender-name}={some.log4j.appender.class}
log4j.appender.{logging-appender-name}.{some-other-property}=...

其中{logging-appender-name}是您自己选择的名称(在本例中为LOG和stdout),而{some.log4j.appender.class}是许多log4j 日志附加器类之一,例如DailyRollingFileAppenderConsoleAppender

我会添加:log4j.appender.LOG.Threshold = ALL

我不确定默认值是多少。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM