根据log4j.properties文件中用户输入的值对文件位置进行参数化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据log4j.properties文件中用户输入的值对文件位置进行参数化相关的知识,希望对你有一定的参考价值。
在我的log4j.properties
文件中,我有一行日志文件位置:
log4j.appender.file.File=<file path>.log
我想在运行时根据用户提供的路径设置它。我如何使用Log4J做到这一点?
另外,如果我切换到Logback,如何配置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
更多细节in the docs。
以上是关于根据log4j.properties文件中用户输入的值对文件位置进行参数化的主要内容,如果未能解决你的问题,请参考以下文章
log4j.properties中怎样配置才能在输出的日志信息中输出进程号和线程号?