【问题标题】:Log4j get Appender from configfile by name without using loggerLog4j 通过名称从配置文件中获取 Appender,而不使用记录器
【发布时间】:2014-09-21 19:13:17
【问题描述】:

我想按名称从我的 log4j.xml 中检索所有附加程序到我的 Java 类。没有附加所有附加程序的记录器,因为我无法更改 log4j.xml。有没有办法检索这些附加程序?一些附加程序未附加到任何记录器。搜索互联网似乎是不可能的。

【问题讨论】:

    标签: java log4j appender


    【解决方案1】:

    不确定,但也许这段代码会对您有所帮助:

    static Set<Appender> getAllAppenders() {
        Set<Appender> allAppenders = new HashSet<>();
        LoggerRepository repository = LogManager.getLoggerRepository();
        Enumeration<Logger> loggers = repository.getCurrentLoggers();
        while (loggers.hasMoreElements()) {
            Logger logger = loggers.nextElement();
            Enumeration<Appender> appenders = logger.getAllAppenders();
            while (appenders.hasMoreElements()) {
                allAppenders.add(appenders.nextElement());
            }
        }
        return allAppenders;
    }
    

    【讨论】:

    • 遗憾的是它不会,因为有没有附加到任何记录器的附加程序。
    猜你喜欢
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 2010-09-30
    相关资源
    最近更新 更多