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打包相关联,且没有改变项目目前的文件结构,环境的区分也很清楚.
网友评论