• 主页
  • 将Log4j配置从文件转换为代码内配置

将Log4j配置从文件转换为代码内配置

我想在Java中动态地设置我的日志文件名,这就是为什么我试图将我的日志文件重新实现为编程配置,这样我就可以用一个变量来设置日志文件名。

我纠结于如何告诉log4j在info级别上记录某个包。

我的log4j.properties是这样的:

log4j.rootLogger = warn, FILE

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=log.txt
log4j.appender.FILE.Append=false
log4j.appender.FILE.MaxFileSize=99999999KB
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%m - %5p %d{HH:mm:ss,SSS} [%t] (%F:%L)%n

log4j.logger.a.b.c.d=info

到目前为止,我得到的是:

FileAppender fa = new FileAppender();
        fa.setName("FileLogger");
        fa.setFile("mylog"+args+".log");
        fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
        fa.setThreshold(Level.WARN);
        fa.setAppend(false);
        fa.activateOptions();

        //add appender to any Logger (here is root)
        Logger.getRootLogger().addAppender(fa);
        Logger.getLogger("a.b.c.d").setLevel(Level.INFO);

如果将FileAppender设置为warn,则不会记录任何内容,如果将其设置为info,则基本上就是所有内容。我的最后一行代码似乎没有效果。有谁知道少了什么吗?

转载请注明出处:http://www.xjzlzx.com/article/20230521/2439969.html