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

时间:2014-03-05 18:25:28

标签: java intellij-idea log4j slf4j

当我使用Maven生成的包运行我的应用程序时,根据log4j.xml,日志显示正常。 log4j.xml文件位于pom.xml所在的同一位置,因此我认为构建会将其选中并为运行时正确定位。

但是,有时候我喜欢从IDE中运行应用程序进行调试(IntelliJ IDEA),IDE会无缝地选择Maven配置而无需任何额外的调整。一个问题是它永远不会记录任何内容,也不会在logger.info("...")之类的情况下抛出任何异常。

在调试模式下,您能猜一下我可以做些什么来保持日志写入?下面是log4j.xml。我尝试将fileName属性更改为完全限定的路径,但它不起作用。例如。是否可以询问Logger它正在写入哪个物理文件?

<?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>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我会建议同样的答案。 您是否检查过文件“my_app_logs”是否创建在与从maven启动测试时创建的目录不同的目录中 您应该从运行配置的想法中检查测试的工作目录。

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