gpt4 book ai didi

java - Log4J 动态更改文件路径

转载 作者:搜寻专家 更新时间:2023-10-30 21:10:18 26 4
gpt4 key购买 nike

我想动态更改我的 log4j 日志文件的路径和文件名。

我已经阅读了很多页面,几乎每个页面都告诉我应该使用系统属性,如下所示: how to change the log4j log file dynamically?

所以我的 log4j.properties 文件如下所示:

log4j.logger.JDBC_LOGGER=INFO,jdbcTests
log4j.additivity.JDBC_LOGGER = false

log4j.appender.jdbcTests=org.apache.log4j.FileAppender
log4j.appender.jdbcTests.File=${my.log}
log4j.appender.jdbcTests.layout=org.apache.log4j.PatternLayout
log4j.appender.jdbcTests.append = false
log4j.appender.jdbcTests.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %C:Line %L - %m%n

在我的主要方法中,我将设置我的新系统属性:

System.setProperty("{my.log", "C:/logfile.log");

但我只是得到一个错误:

log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException:
at java.io.FileOutputStream.open(Native Method)....

当我尝试读取我设置的系统属性时:

System.out.println(System.getProperty("my.log"));

它返回空值。我做错了什么?

最佳答案

我认为你的意思是“my.log”而不是“{my.log”

System.setProperty("my.log", "C:/logfile.log");

我不认为您可以在日志记录开始后更改它,因此您需要尽可能早地在程序中进行设置。

顺便说一句:您可以子类化 FileAppender 以使其以您喜欢的方式运行。

关于java - Log4J 动态更改文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11846593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com