无法使用log4j创建文件

时间:2017-03-07 15:56:06

标签: java spring logging configuration

目前我的代码是在控制台上打印日志,但它没有使用日志创建文件。这是log4j.properties的代码:

log4j.rootLogger=file, stdout

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=C:/logs/logging.log
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=10MB
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} %L - %m%n
log4j.appender.file.Append=true
log4j.appender.file.Threshold=INFO

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} %m%n

它位于我的spring应用程序的资源文件夹中。 这就是我使用它的地方:

public void getPreviousDay() {
        PropertyConfigurator.configure("log4j.properties");
        logger = Logger.getLogger(LocationScheduler.class);
        logger.info("Test");
}

1 个答案:

答案 0 :(得分:0)

您需要对log4j.properties

进行一些更改
  1. 首先,log4j.rootLogger指定日志级别,而不是appender。所以在你的情况下它必须是

    log4j.rootLogger= INFO, file, stdout

  2. 而不是log4j.appender.file=org.apache.log4j.FileAppender使用log4j.appender.file=org.apache.log4j.RollingFileAppender来获取翻转日志文件。

  3. 希望这有帮助。

    修改

    您的程序似乎无法访问log4j.properties,原因是您用于加载它的方法只需要log4j.properties的完全限定路径

    如果您想从类路径中加载log4j.properties,请使用以下版本:

     PropertyConfigurator.configure(ClassLoader.getSystemResource("log4j.properties"));