gpt4 book ai didi

java - 如果没有打印日志,则停止创建日志文件

转载 作者:搜寻专家 更新时间:2023-11-01 03:31:58 26 4
gpt4 key购买 nike

我有以下简单的 Hello World:

public class App {
private static final Logger log = Logger.getLogger(App.class);

public static void main(String[] args) {
System.out.println("Hello World!");
// log.info("Test info log");
}
}

log4j.properties 中包含以下内容:

# Root logger option
log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

每当我运行代码时,即使日志记录被注释掉,也会创建空的 log.log 文件。

如何让它只在打印日志时才创建日志文件?

最佳答案

如果您知道第一个日志写入文件的位置,这可能会为此提供解决方案。您可以在需要记录时创建文件附加器

    public static void addFileAppender() {
FileAppender fileAppender = new FileAppender();
fileAppender.setName("FileLogger");
fileAppender.setFile("feature.log");
fileAppender.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"));
fileAppender.setThreshold(Level.DEBUG);
fileAppender.setAppend(true);
fileAppender.activateOptions();
Logger.getRootLogger().addAppender(fileAppender);
}

关于java - 如果没有打印日志,则停止创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48951721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com