关于log4j2和lombok的日志规范都有哪些啊 有推荐的文章么
这里提供一个log4j2日志打印信息的模板
pattern="[%d{yyyy-MM-dd HH:mm:ss,SSS Z}] [%-5p] [%t] [%c %L] %m%n"
输出如下
[2021-09-08 22:16:53,590 +0800] [INFO ] [pool-2-thread-4] [com.demo.log.LogDemo 22] thread-3
[2021-09-08 22:16:53,589 +0800] [INFO ] [pool-2-thread-10] [com.demo.log.LogDemo 22] thread-9
[2021-09-08 22:16:53,607 +0800] [INFO ] [pool-2-thread-4] [com.demo.log.LogDemo 22] thread-3
[2021-09-08 22:16:53,589 +0800] [INFO ] [pool-2-thread-3] [com.demo.log.LogDemo 22] thread
如果想了解具体的含义见下
你问我我还真不知道,推荐的话有
https://www.cnblogs.com/lyrb/p/11867430.html
Java日志最佳实践
定义日志变量
日志变量往往不变,最好定义成final static,变量名用大写。
日志分级
Java的日志框架一般会提供以下日志级别,缺省打开info级别,也就是debug,trace级别的日志在生产环境不会输出,在开发和测试环境可以通过不同的日志配置文件打开debug级别。
fatal - 严重的,造成服务中断的错误;
error - 其他错误运行期错误;
warn - 警告信息,如程序调用了一个即将作废的接口,接口的不当使用,运行状态不是期望的但仍可继续处理等;
info - 有意义的事件信息,如程序启动,关闭事件,收到请求事件等;
debug - 调试信息,可记录详细的业务处理到哪一步了,以及当前的变量状态;
trace - 更详细的跟踪信息;
在程序里要合理使用日志分级:
基本的Logger编码规范
1.在一个对象中通常只使用一个Logger对象,Logger应该是static final的,只有在少数需要在构造函数中传递logger的情况下才使用private final。
2.输出Exceptions的全部Throwable信息,因为logger.error(msg)和logger.error(msg,e.getMessage())这样的日志输出方法会丢失掉最重要的StackTrace信息。
3.不允许记录日志后又抛出异常,因为这样会多次记录日志,只允许记录一次日志。
4.不允许出现System print(包括System.out.println和System.error.println)语句。
5.不允许出现printStackTrace。
6.日志性能的考虑,如果代码为核心代码,执行频率非常高,则输出日志建议增加判断,尤其是低级别的输出<debug、info、warn>。
debug日志太多后可能会影响性能,有一种改进方法是:
但更好的方法是Slf4j提供的最佳实践:
一方面可以减少参数构造的开销,另一方面也不用多写两行代码。
7.有意义的日志
通常情况下在程序日志里记录一些比较有意义的状态数据:程序启动,退出的时间点;程序运行消耗时间;耗时程序的执行进度;重要变量的状态变化。
初次之外,在公共的日志里规避打印程序的调试或者提示信息。
日志这个东西为了找问题用的,描述的清除就可以;
用户id 级别 发生时间 类位置:行号 异常信息