在我的log4j.properties
文件中,我有一行日志文件位置:
log4j.appender.file.File=<file path>.log
我想在运行时根据用户提供的路径设置它。我如何使用Log4J做到这一点?
另外,如果我切换到Logback,如何配置logback.xml
来执行相同操作?
答案 0 :(得分:0)
在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
更多详情in the docs。