Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用log4j创建文件_Java_Spring_Logging_Configuration - Fatal编程技术网

Java 无法使用log4j创建文件

Java 无法使用log4j创建文件,java,spring,logging,configuration,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.MaxFileSi

目前,我的代码正在控制台上打印日志,但它没有创建包含日志的文件。这是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");
}

您需要对
log4j.properties

  • 首先
    log4j。rootLogger
    指定日志级别,而不是appender。所以在你的情况下,它必须是

    log4j.rootLogger=INFO,file,stdout

  • 不要使用
    log4j.appender.file=org.apache.log4j.FileAppender
    而是使用
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    来获取滚动日志文件

  • 希望这有帮助

    编辑

    您的程序似乎无法访问
    log4j.properties
    ,原因是您用于加载它的方法只采用
    log4j.properties

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

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

    我尝试了你的建议并更正了我的代码,不幸的是它没有工作:(你确定你的log4j.properties可以加载吗?最后我找到了答案,其实很简单。我在重命名文件log4j.property时将其命名为log4j.property,它创建了该文件。因此,感谢你的帮助:)顺便问一下,你能给我一个提示,如何只在文件中写一条特定的信息吗。我的意思是,我不希望所有的日志都只保存一个特定的字符串。请就此提出一个单独的问题。