我有一个应用程序,在 log4j.properties 文件中配置了 log4j 日志记录。目前,此应用程序在 UNIX 上运行并在 /tmp 中创建一个日志文件。此应用程序需要在 Windows 上运行,并且在该平台上我希望它选择正确的临时目录,我相信它是 C:\temp。
如何更改我的 log4j.properties 文件以实现这一点?我需要切换到使用 XML 配置文件吗?
我有一个应用程序,在 log4j.properties 文件中配置了 log4j 日志记录。目前,此应用程序在 UNIX 上运行并在 /tmp 中创建一个日志文件。此应用程序需要在 Windows 上运行,并且在该平台上我希望它选择正确的临时目录,我相信它是 C:\temp。
如何更改我的 log4j.properties 文件以实现这一点?我需要切换到使用 XML 配置文件吗?
我认为您只会使用${java.io.tmpdir}
硬编码路径来代替。
从 Log4J v1.2.14 开始,我可以在 log4j.xml 文件和 log4j.properties 文件中使用它。网上有一些讨论说变量不会在 DOMReader 中解析,但从这个版本的 log4j 开始就可以了。
<appender name="rolling_file_appender_ourapp" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${user.home}/.mycompany/OurApp.log" />
<param name="Append" value="false" />
<param name="MaxFileSize" value="10MB" />
<param name="MaxBackupIndex" value="3" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d | %-5p | %c | %m | %t | %x %n" />
</layout>
</appender>
或者
log4j.appender.rfile=org.apache.log4j.FileAppender
log4j.appender.rfile.layout=org.apache.log4j.PatternLayout
log4j.appender.rfile.Append=false
log4j.appender.rfile.layout.ConversionPattern=%d [%p] %c %m%n
log4j.appender.rfile.File=${user.home}/.mycompany/OurApp.log