作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序中使用 log4j,以及一个用于将输出设置到控制台和 rollfileappender 的配置文件。粘贴下面的配置文件。有办法改变吗在代码中打开配置文件后的 fileappender 输出文件?它对我来说打开得很好,但有时我想使用与配置文件中的默认文件不同的输出文件。感谢您的指导。
log4j.rootLogger=info, stdout, RFA
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=[%p] [%d{MM/dd/yyyy HH:mm:ss}] - %m %n
log4j.appender.RFA=org.apache.log4j.RollingFileAppender
log4j.appender.RFA.File=${user.home}/output.log
log4j.appender.RFA.MaxFileSize=100KB
# Keep backup files
log4j.appender.RFA.MaxBackupIndex=5
log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
log4j.appender.RFA.layout.ConversionPattern=[%p] [%d{MM/dd/yyyy HH:mm:ss}] - %m %n
最佳答案
如果您打算从代码中编辑属性文件并让 log4j 检测到它,则必须首先通过调用 PropertyConfigurator.configureAndWatch("log4j.properties")
让 log4j 监视属性文件
但是,我更喜欢使用像 kunal 提到的那样的 Logger
api 以编程方式访问附加程序。
更新;以编程方式执行此操作的代码
Enumeration allAppenders = Logger.getRootLogger().getAllAppenders();
while (allAppenders.hasMoreElements()) {
Object object = (Object) allAppenders.nextElement();
if (object instanceof RollingFileAppender) {
RollingFileAppender appender = (RollingFileAppender) object;
appender.setFile("/path/to/new/file.log");
appender.activateOptions();
break;
}
}
关于java - 如何将 RollingFileAppender 更改为配置文件中设置的另一种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7505156/
我是一名优秀的程序员,十分优秀!