Java 在IntelliJ中运行应用程序时未启动日志

Java 在IntelliJ中运行应用程序时未启动日志,java,intellij-idea,log4j,slf4j,Java,Intellij Idea,Log4j,Slf4j,当我使用Maven生成的包运行应用程序时,根据log4j.xml,日志看起来很好。log4j.xml文件位于pom.xml所在的同一位置,因此我认为构建会将其拾取并在运行时正确定位 然而,有时我喜欢在IDE之外运行应用程序来调试IntelliJ IDEA,IDE无缝地获取Maven配置,而无需任何额外的调整。一个问题是它从不记录任何东西,也不会在logger.info上抛出任何异常。。。诸如此类 你能猜一下在调试模式下我能做些什么来保持日志写入?下面是log4j.xml。我尝试将fileName

当我使用Maven生成的包运行应用程序时,根据log4j.xml,日志看起来很好。log4j.xml文件位于pom.xml所在的同一位置,因此我认为构建会将其拾取并在运行时正确定位

然而,有时我喜欢在IDE之外运行应用程序来调试IntelliJ IDEA,IDE无缝地获取Maven配置,而无需任何额外的调整。一个问题是它从不记录任何东西,也不会在logger.info上抛出任何异常。。。诸如此类

你能猜一下在调试模式下我能做些什么来保持日志写入?下面是log4j.xml。我尝试将fileName属性更改为完全限定路径,但没有成功。例如,是否可以询问记录器正在将条目写入哪个物理文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="30">
    <Appenders>
        <File name="File" fileName="my_app_logs">
            <PatternLayout pattern="[%-6p]:[%d{ISO8601}]:[%t]:[%c{2}]:%m%n"/>
            <ThresholdFilter level="debug"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

将log4j.xml文件放在src/main/resources目录中。

我会给出相同的答案。 您是否检查过文件my_app_logs是否创建在与从maven启动测试时创建的目录不同的目录中 您应该从idea的运行配置中检查测试的工作目录

要验证log4.xml是否已实际加载,可以使用控制台appender并将其分配给root用户。然后,如果文件由log4j找到,您将在IDEA控制台中看到输出