我是靠谱客的博主 笨笨夏天,最近开发中收集的这篇文章主要介绍Log4j2配置替换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、在一个公共依赖下放一个log4j2.xml的默认配置
在这里插入图片描述

2、在需要使用的项目里,引入步骤一中的公共项目,并新建log4j2.component.properties文件,文件内的值为:

log4j.configurationFile=log4j2.xml,log4j2-test2.xml

这个代表使用2个log4j2.xml,并且后边log4j2-test2.xml中配置的属性将会覆盖log4j2.xml中的属性
在这里插入图片描述

当在线上环境需要外部的配置时候可以将log4j2.component.properties中的值改为

log4j.configurationFile=log4j2.xml,log4j2-test2.xml,./config/log4j2-test2.xml

同时在jar包的同级的config中添加log4j2-test2.xml并配置自己的配置

2、使用spring环境配置
2.1、编写配置类


import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.lookup.AbstractLookup;
import org.apache.logging.log4j.core.lookup.StrLookup;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;


/**
 * 为log4J2注入spring环境信息
 */
@Plugin(name = "spring", category = StrLookup.CATEGORY)
@Order(Ordered.HIGHEST_PRECEDENCE)
public class SpringEnvrionmentLookup extends AbstractLookup
        implements ApplicationContextInitializer<ConfigurableApplicationContext> {

    private static ConfigurableApplicationContext context;


    @Override
    public String lookup(final LogEvent event, final String key) {
        if (context != null) {
            return context.getEnvironment().getProperty(key);
        }
        return null;
    }


    @Override
    public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
        context = configurableApplicationContext;
    }
}

2.2、使用spi形式注入
创建META-INF目录并在该目录下创建spring.factories,写入下边的信息

org.springframework.context.ApplicationContextInitializer=
  配置类全路径

最后

以上就是笨笨夏天为你收集整理的Log4j2配置替换的全部内容,希望文章能够帮你解决Log4j2配置替换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部