java log4j扩展_log4j2动态修改日志级别及拓展性使用详解

一、供参考的完整日志配置

${sys:vmparam}

${basePath}/app.log

filePattern="logs/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH}-%i.log.gz">

二、动态修改日志级别

Collection current = LoggerContext.getContext(false).getLoggers();

Collection notcurrent = LoggerContext.getContext().getLoggers();

Collection allConfig = current;

allConfig.addAll(notcurrent);

for (org.apache.logging.log4j.core.Logger log:allConfig){

log.setLevel(Level.DEBUG);

}

三、自定义appender

以上介绍,均依赖于log4j2提供的官方配置,当对日志的业务逻辑复杂时,光靠配置也许满足不了需要,此时我们会想自己能操控打印的日志,做日志的路由,或保存等操作,这个时候就需要有自定义的appender,可以配置的就靠配置完成,不能的就自己写代码干预,而log4j2刚好提供了这样的拓展性。

如下代码即是自定义的Appender,通过实现AbstractAppender接口,配置@Plugin注解对应的信息并在eppend方法中写自己的业务逻辑,从而实现了对日志更大自由度的控制,如下展示的log4j配置文件中的配置节点名称要和注解中配置

你可能感兴趣的:(java,log4j扩展)