正确打印日志:
1.不在千层循环中打印日志,这样可能会拖垮应用程序,应该在循环中记录要点,循环完成之后一起输出
2.不用info级别的日志打印error日志,输出不同级别的日志
3.使用参数化形式{}占位,[]进行参数隔离
log.info("项目[{}]下共有[{}]条报警记录", projectId, elementList.size());
4.不用System.out.println("******");输出日志,因为只会打印在控制台,应该用日志框架输出日志
5.不要抛出异常之后又输出日志,抛出自定义业务异常之后就不用记录日志啦,由最终捕获方进行异常处理,避免重复日志
6.软件设计模式原则:面向接口的对象编程,而不是面向实现编程。不用具体的日志实现类
5.应该输出错误的全部信息e.getMessage()不会记录详细的堆栈异常,只会记录错误基本描述信息,不利于排查问题
6.线上环境不开启debug日志,因为项目本身的debug日志太多,各种框架中也大量使用debug的日志,线上开启debug日志可能会很快就打满磁盘,影响业务系统的正常运行
7.配置拦截器所有请求操作先访问日志拦截器,打印接口的请求参数,返回的时候打印接口的返回参数(系统设计建议)
8.在项目中可见日志配置文件,专门用来配置日志信息的,比如输出级别、输出目的地、输出格式等
日志配置文件配置:
1、日志文件可根据文件大小自动生成备份文件,如可设置超过100M,自动分割文件。
2、可设置自动备份,每天生成一个日志文件。备份文件名称可随意定制。
3、可灵活设置,不同级别的日志打印到不同的日志文件,方便BUG跟踪。
4、启用log4j日志,可以把tomcat的日志关闭