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

Java 如何将log4j记录到文件并打印到控制台,java,log4j,Java,Log4j,我可以让日志进入控制台,但我似乎无法让它进入日志文件。这是我的属性文件 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

我可以让日志进入控制台,但我似乎无法让它进入日志文件。这是我的
属性
文件

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.appender.LOG.Threshold=ALL


我不确定默认设置是什么。

问题是您的单身\应该是\\。大多数属性文件都是这样。

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

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中的一个,例如or。

不一定是\\?大多数房产都是这样files@MJB:谢谢。你的建议解决了我的问题。你能把你的评论格式化成一个单独的答案吗?这样我就可以接受了。