java log4j 动态配置文件_java – Log4J动态更改文件路径

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

所以我的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

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

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

但我只是得到一个错误:

log4j:ERROR setFile(null,false) call failed.

java.io.FileNotFoundException:

at java.io.FileOutputStream.open(Native Method)....

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

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

它返回null.

我做错了什么?

解决方法:

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

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

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

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

标签:java,properties,log4j,dynamic

来源: https://codeday.me/bug/20191004/1853589.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值