根据log4j.properties文件中用户输入的值对文件位置进行参数化

问题描述 投票:0回答:1

在我的log4j.properties文件中,我有一行日志文件位置:

log4j.appender.file.File=<file path>.log

我想在运行时根据用户提供的路径设置它。我如何使用Log4J做到这一点?

另外,如果我切换到Logback,如何配置logback.xml来做同样的事情呢?

java logging log4j logback properties-file
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.