【问题标题】:Where I have to put the file for using file appender log4j2我必须在哪里放置文件以使用文件附加程序 log4j2
【发布时间】:2013-05-14 02:47:39
【问题描述】:

我是 stackoverflow 的新手。 我正在尝试在我的 Maven Web 应用程序中设置 log4j2,并且我想使用文件附加程序。我发现了这样的例子..

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

所以。我创建了一个文件夹“logs”并将 app.log 放在我的应用程序的某个位置。但日志数据不会写入文件。

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

我不太确定该“日志”文件夹应该放在哪里。

我的应用目录是这样的

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

感谢您的帮助。

【问题讨论】:

    标签: java logging configuration log4j log4j2


    【解决方案1】:

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

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

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

    日志文件夹是相对于您应用的当前目录的。确切的位置可能取决于您的 Web 应用服务器。您可以通过将 System.getProperty("user.dir") 的结果记录到控制台来找到...

    另一件要尝试的事情是为日志文件指定一个绝对路径,看看文件是否仍然没有生成。

    【讨论】:

    • 谢谢 Remko。你拯救了一天。当我在 user.dir 中找到时,我找到了日志文件。它甚至不需要立即刷新。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-30
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多