Met*_*d89 12 java log4j properties dynamic
我想动态更改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
Run Code Online (Sandbox Code Playgroud)
在我的main方法中,我将设置我的新系统属性:
System.setProperty("{my.log", "C:/logfile.log");
Run Code Online (Sandbox Code Playgroud)
但我只是得到一个错误:
log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException:
at java.io.FileOutputStream.open(Native Method)....
Run Code Online (Sandbox Code Playgroud)
当我尝试读取我的set系统属性时:
System.out.println(System.getProperty("my.log"));
Run Code Online (Sandbox Code Playgroud)
它返回null.我做错了什么?
我认为你的意思是"my.log"不是"{my.log"
System.setProperty("my.log", "C:/logfile.log");
Run Code Online (Sandbox Code Playgroud)
我不认为您可以在日志记录开始后更改此设置,因此您需要尽可能早地在程序中进行设置.
顺便说一句:您可以将FileAppender子类化,使其以您喜欢的方式运行.
| 归档时间: |
|
| 查看次数: |
31894 次 |
| 最近记录: |