log4j日志文件未自动刷新

时间:2017-11-11 16:04:48

标签: java log4j2

我使用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();
    }
}

有人在这里看到问题吗?

0 个答案:

没有答案