当我使用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>
答案 0 :(得分:0)
将log4j.xml文件放在src / main / resources目录中。
答案 1 :(得分:0)
我会建议同样的答案。 您是否检查过文件“my_app_logs”是否创建在与从maven启动测试时创建的目录不同的目录中 您应该从运行配置的想法中检查测试的工作目录。
要验证log4.xml是否已实际加载,您可以使用控制台appender并将其分配给root。然后,如果log4j找到该文件,您将在IDEA控制台中看到输出。