为什么选择 log4j2
Log4j2 使用了 LMAX Disruptor 库。在多线程场景中,异步 Logger 的吞吐量比 Log4j 1.x 和 Logback 高 18 倍,延迟低几个数量级。如下是官网的性能对比:
上图来源:https://logging.apache.org/log4j/2.x/performance.html
最终效果
- 日志输出整齐有序;
- 不同级别日志采用不同颜色输出,更加清晰直观;
- 日志输出可带有用户标识或特定标识,有利于查看同组的多个请求轨迹、排查问题;
- 不同环境采用不同配置,本地测试日志只输出到控制台,其他环境日志输出到指定文件;
- 线上日志按天分割,历史日志按月压缩存放,定期删除之前日志,便于排查问题,防止日志累积达到磁盘上限;
- 警告错误日志再单独输出到错误日志文件中,便于快速定位问题;
日志效果图