根据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中怎样配置才能在输出的日志信息中输出进程号和线程号?

学习笔记开源日志记录工具log4j使用方法

log4j.properties 的作用是啥?求详解

如何读取jar包外的properties文件和log4j.properties

log4j.properties详解与例子

如何读取jar包外的properties文件和log4j.properties