记录项目日志
时间;2018/4/14 16:01:00
参考:
项目日志信息打印#
为什么要打印日志 ?#
- 记录项目运行过程中出现的错误或异常信息,方便开发人员进行业务改进。
- 记录项目关键业务执行情况。记录成功或失败,以及相关数据。方便找出业务问题的地点和原因。
什么时候记录日志 ?#
- 业务方法的结尾。
- 业务处理流程日志,如包含A->B->C三个自业务,记录业务执行A日志,业务执行日志,业务执行日志。
- 外部接口调用,调用第三方接口以及网络请求等。
- 系统入口和出口,如Http接口调用前后的日志。
- 业务处理出现错误,业务处理过程出现错误。
- 系统抛出异常时。
基本要求#
-
记录关键信息,避免日志记录过多,导致的日志文件混乱问题。
-
良好的可读性(人和机器)。
- 一般参数使用键值对.
- 对象使用JSON格式打印。
-
区分日志的级别。
- DEBUG:项目调试信息,用于排除框架等出错原因。
- INFO:也出处理中常单比较关键的点,记录Info日志。比如用户修改密码业务结束之后记录在日志中打印操作信息。
- ERROR:业务处理失败或业务处理过程中抛出异常。
-
日志文件
- 指定单个日志文件的大小。
- 按时间段分离日志文件,比如天。
- 日志文件删除策略,如删除超过15天的日志文件。
日志记录的内容#
- 日志打印的时间。
- 在哪一个类的哪一个方法里面出现异常。
- 正在处理什么业务,以及处理业务的参数。
- 业务处理需要的关键信息,比如插入用户信息失败的时候记录失败的用户的简略信息。
- 业务所在线程,区分不同线程处理相同业务日志数据,防止日志信息混淆。
- 业务执行耗时。
-
大数据量业务执行进度。
例如:
1
log4j.appender.file.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss} %c %t - %m%n
输出信息:
1
INFO 2016-08-13 19:18:24 com.dslztx.Main ThreadName - Run Thread