日志规约
- 应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API。使用门面模式的日志框架,有利于维护和各个类的日志处理方法统一。
- 日志文件推荐至少保存15天,因为有些异常具备以“周”为频次发生的特点。
- 应用中的扩展日志(如打点、临时监控、访问日志等)命名方式:appName_logType_logName.log。logType为日志类型,推荐分类有stats/monitor/visit 等;
logName为日志描述。这种命名的好处:通过文件名就可以知道日志文件属于哪个应用,哪种类型,有什么目的,这也有利于归类查找。 - 对trace/debug/info级别的日志输出,必须使用条件输出形式或者占位符的方式。
- 避免重复打印日志,否则会浪费磁盘空间。务必在日志配置文件中设置additivity=false。
- 异常信息应该包括两类:案发现场信息和异常堆栈信息。如果不处理,那么通过关键字向上抛出。
- 谨慎地记录日志。生产环境禁止输出debug日志;有选择地输出info日志;如果使用warn记录刚上线时的业务行为信息,一定要注意日志输出量的问题,避免吧服务器磁盘撑爆,并及时删除这些观察日志。
- 可以使用warn日志级别记录用户输入参数错误的情况,避免当用户投诉时无所适从。