生产环境日志级别一般都是warn和error,但在开发环境中,warn级别太高了,我们可能需要debug级别来观察日志输出。这时就会改动logback.xml,然后有的小伙伴一不小心就提交到代码库了,和其他小伙伴冲突甚至上线了。
上面说的是多环境公用同一个logback.xml的问题,当然可以用多个profile来区分开发和生产环境。如果一个模块很多人开发的话,不同的人关注不同的日志,如我关心sql日志,其他人可能关心spring日志或者业务日志、监控日志,这样还是要改本地的logback.xml。
其实还可以通过另一种方式不改变logback.xml来实现不同开发人员对应不同的日志输出,即先读取本地配置的日志级别,读取不到就用原来的级别,本地配置的级别可以在系统环境变量中设置。logback是支持这种方式的,语法${你的环境变量:-默认值}
,如
<logger name="jdbc.sqltiming" level="${logback.sql.level:-warn}" additivity="false">
<appender-ref ref="stdout"/>
</logger>
线上配置的是warn级别,如果本地配置了logback.sql.level=debug,那么日志级别就是debug,否则就是原来的值warn。注意warn前面是:-
。
配置参考:https://www.cloudesire.com/configure-logback-log-level-via-environment-variables/
作者:微笑_f0e6
链接:https://www.jianshu.com/p/6b76626a3bc2
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。