Java 无法使用log4j创建文件
目前,我的代码正在控制台上打印日志,但它没有创建包含日志的文件。这是log4j.properties的代码: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.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,它创建了该文件。因此,感谢你的帮助:)顺便问一下,你能给我一个提示,如何只在文件中写一条特定的信息吗。我的意思是,我不希望所有的日志都只保存一个特定的字符串。请就此提出一个单独的问题。