我使用notepad ++通过log4j日志记录机制预览运行java应用程序的日志文件。 NP ++有一个功能,当焦点切换到文件时会自动重新加载文件,我觉得非常方便。这里的问题是新行不会自动显示,即使它们已添加到文件中。我可以看到,如果我手动重新加载文件或从另一个文本编辑器打开它。它看起来像文件被锁定,因为我不能删除它,直到应用程序关闭。我尝试在Linux中执行相同的应用程序,但文件未锁定。我可以使用手动刷新文件,但我担心如果我在这里做错了什么。将锁定设置为false似乎对此没有帮助。
我使用log4j v2.9.1并从wincmd运行应用程序:
java -jar log.jar
这是log4jconfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration name="ConfigName">
<Appenders>
<File locking="false" immediateFlush="true" bufferedIO="false" name="LogFile" fileName="C:\path\to\test.log">
<PatternLayout>
<Pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} %5level: %m%n</Pattern>
</PatternLayout>
</File>
<Async name="Async">
<AppenderRef ref="LogFile"/>
</Async>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Async"/>
</Root>
</Loggers>
</Configuration>
Java代码:
public class Main {
static {
System.setProperty("log4j.configurationFile", "C:\\path\\to\\log4jconfig.xml");
}
private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
LOGGER.info("Testing...");
System.in.read();
}
}
有人在这里看到问题吗?