【问题标题】:log4j - Programmatical configurationlog4j - 编程配置
【发布时间】:2020-03-25 11:23:28
【问题描述】:

我正在使用 log4j (1.2.15) 登录我的应用程序,其中我有两个用于两个不同包(darius.log4j.sql 和 darius.log4j.net)的文件附加程序和一个控制台附加程序。它的配置是这样的:

# CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# FILE A
log4j.appender.A=org.apache.log4j.FileAppender
log4j.appender.A.File=A.log
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# FILE B
log4j.appender.B=org.apache.log4j.FileAppender
log4j.appender.B.File=B.log
log4j.appender.B.layout=org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
#
log4j.rootLogger=ERROR, CONSOLE
#
log4j.logger.darius.sql=DEBUG, A
log4j.logger.darius.net=INFO, B

如果出现特定的数据组合,我现在需要以编程方式添加新的文件附加程序。我知道如何定义这个新的文件 appender(例如 C),但 我不知道如何将级别和新的 appender 设置为第三个包

log4j.logger.darius.ws=INFO, C

其中 C 是第三个文件附加程序。

任何命中?

【问题讨论】:

    标签: log4j


    【解决方案1】:

    简单!创建第三个附加程序 (C) 后,为您的命名空间 (darius.ws) 获取一个记录器,设置此记录器的信息级别。最后,只需将此 C 附加程序附加到记录器即可。

    FileAppender fileAppender = new FileAppender();
    fileAppender.setName("C");
    fileAppender.setFile("C.log");
    fileAppender.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
    fileAppender.setThreshold(Level.INFO);
    fileAppender.setAppend(true);
    ...
    Logger someLogger = Logger.getLogger("darius.ws");
    someLogger.setLevel(Level.INFO);
    someLogger.addAppender(fileAppender);
    

    最好的问候

    【讨论】:

      猜你喜欢
      • 2018-10-18
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 2017-09-24
      • 2010-12-18
      • 1970-01-01
      相关资源
      最近更新 更多