我必须把文件放在使用文件appender log4j2的地方

时间:2013-05-14 02:47:40

标签: java logging configuration log4j log4j2

我是stackoverflow的新手。 我试图在我的maven web应用程序中设置log4j2,我想使用文件appender。我发现这样的例子......

<File name="MyFile" fileName="logs/app.log">      
<PatternLayout> 
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
</File>

因此。我创建了一个文件夹“logs”并将app.log放在我的应用程序的某个地方。但是日志数据不会写入文件。

当我更改为在控制台中写入以进行测试时,我可以在控制台中看到日志数据。

我不太确定我要把那个“logs”文件夹放到哪里。

我的应用程序目录就是那样

src/main/java
src/main/resources
src/main/webapp
src/test/java

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

你能提供完整的log4j2.xml文件吗?

默认情况下,File appender是bufferedIO = true,而immediateFlush = true,因此输出立即刷新到磁盘。您可以尝试添加显式的immediateFlush属性:

<File name="MyFile" fileName="logs/app.log" immediateFlush="true">...  

logs文件夹与应用程序的当前目录相关。具体取决于您的网络应用服务器。您可以通过将System.getProperty(“user.dir”)的结果记录到控制台来找到...

要尝试的另一件事是指定日志文件的绝对路径,并查看文件是否仍未生成。

答案 1 :(得分:0)

log4j2配置文件名应为log4j2.xml并尝试路径“src / log4j2.xml”