在我的 log4j.properties
文件中,我有一个用于日志文件位置的行:
log4j.appender.file.File=<file path>.log
我想根据在运行时提供的用户提供的路径设置此设置。我该如何使用log4j?
另外,如果我切换到记录,我该如何配置logback.xml
进行相同的操作?
在log4j中您可以使用类似的变量:
log4j.appender.logfile.File=${log.file}.log
然后,在启动应用程序时,您将为log.file
作为Java系统属性提供值。例如:
java -Dlog.file=/some/path/app MyApp
这将导致log4j.appender.logfile.File
的以下派生值:
/some/path/app.log
LogBack提供相同的功能。这是一个示例,使用LogBack的XML配置:
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${log.file}.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
在运行应用程序时,您将定义log.dir
地址:
java -Dlog.file=/some/path/app MyApp
文档中的更多详细信息。