如何获取和设置log4j2中的所有附加程序级别

时间:2018-11-26 09:29:55

标签: logging log4j log4j2

我想从Log4j 1.2.16迁移到Log4j 2.11。 问题是在我们的项目中,我们有很多扩展Log4j1的类。例如。 XMLayout。我们还有一个UI,允许在运行时配置附加器阈值。

这里有两个问题 Q1:可以在运行时设置所有附加程序级别。如果不是,那是替代方法。如果向每个附加程序添加过滤器,该怎么办?
我唯一能找到的是在这里:How can I change the AppenderRef Level in log4j2 programmatically?

Q2:我想获取记录器的所有附加程序并列出其级别。如何实现?

第3季度:如何重写此类扩展Layouts的类,是否使用插件?

public class SafeXMLLayout extends XMLLayout {

    @Override
    public String format(org.apache.log4j.spi.LoggingEvent le) {
        String rawResult = super.format(le);
        return removeInvalidXMLCharacters(rawResult);
    }

    // Just skips invalid XML characters ...
    private String removeInvalidXMLCharacters(String originalStr) {
        StringBuilder sb = new StringBuilder(originalStr.length());
        for (int i=0; i<originalStr.length(); i++) {
            char charAt = originalStr.charAt(i);
            if (org.apache.xml.utils.XMLChar.isValid(charAt)) {
                sb.append(charAt);
            }
        }
        return sb.toString();
    }
}

0 个答案:

没有答案