关于log4j2的一点思考

2023-01-29  本文已影响0人  小王ovo

1.是否桥接slf4j-log4j2?

好处

1.少用一个 log4j-slf4j-impl,打包体积更小.
2.少一层桥接性能有提升

坏处

老项目slf4j用的太多,迁移工作量大.

其他的一些取舍

https://stackoverflow.com/questions/41498021/is-it-worth-to-use-slf4j-with-log4j2/41500347#41500347

一些其他想法

可以使用lombok的注解来减少迁移难度,平时使用也更方便

2.如何实现springclound体系下,不同环境不同日志配置.

方案

1.配置中心拉取配置动态修改(放弃)
https://logging.apache.org/log4j/2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html
因为没有更为复杂的需求,暂时搁置.其次需要维护远程配置文件,增加了一点维护复杂度.

2.Log4j Spring Boot Support
https://logging.apache.org/log4j/2.x/log4j-spring-boot/index.html
只需要一个额外jar(log4j-spring-boot)即可,log4j2-core的版本续要高于2.15.0,且log4j-spring-boot版本也需要和log4j-core保持一致.
看了一下代码,就三个class文件,扩展了配置中一个标签(SpringProfile)用于读取springboot配置文件的
spring:
profiles:
active: @profiles.active@

@profiles.active@是从maven的pom获取值的方式,自行查阅即可.

关于log4j2.xml添加一下内容即可

    <SpringProfile name="dev">
        <loggers>
        //自行补充
        </loggers>
    </SpringProfile>

    <SpringProfile name="prod">
        <loggers>
        //自行补充
        </loggers>
    </SpringProfile>

个人比较喜欢这一个方案,和maven打包相关联,且没有改变项目目前的文件结构,环境的区分也很清楚.

上一篇 下一篇

猜你喜欢

热点阅读