如何以编程方式配置log4j以仅显示特定包中的日志

时间:2014-01-15 14:41:27

标签: java log4j

使用xml配置log4j时,我添加了类别:

<category name="com.myapp"> 
  <priority value="debug"/> 
  <appender-ref ref="appender1"/>
  <appender-ref ref="appender2"/>
</category>

我需要以编程方式配置它,因为它是动态配置。 我正在使用这个:

    FileAppender fa = new FileAppender();
    fa.setFile("mylog.log");
    fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
    fa.setThreshold(Level.DEBUG);
    fa.setAppend(true);
    fa.activateOptions();
    Logger.getRootLogger().addAppender(fa);
    Logger logger = Logger.getLogger(MyClass.class);
    logger.debug("Hello from logger");

当我使用上面的代码(正如预期的那样)时,我使用记录器从每个应用程序获取所有日志 - 第三方,我感兴趣的罐子中的日志等等。我想允许开发人员将包值添加到db(不是必需的)在运行时更新它,只有那些要写入日志文件。

0 个答案:

没有答案