记录应用系统日志主要有三个原因:记录操作轨迹、监控系统运行状况、回溯系统故障。
推荐日志文件至少保留15天
记录日志时一定请思考三个问题
- 日志是否有人看
- 看到这条日志能做什么
- 能不能提升问题排查效率
日志框架分为三大部分,包括日志门面、日志适配器、日志库。
目前用得最为广泛的日志门面有两种:slf4j和commons-logging
主流的日志库有三个,分别是你log4j、log-jdk、logback。
如果是新工程,则推荐使用slf4j+logback模式。因为logback自身实现了slf4j的接口,无需额外引入适配器,另外logback是log4j的升级版,具备比log4j更多的有点,可以通过如下配置进行集成:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
至此我们的工程就完成了日志框架的继承,再加上一个日志配置文件(如logback.xml、log4j.xml等),并在工程启动时加载,然后就可以进行日志打印了,实例代码如下:
private static final Logger logger = LoggerFactory.getLogger(Abc.class);
注意:logger被定义为static变量,时因为这个logger与当前类绑定,避免每次都new一个新的对象,造成资源的浪费,甚至引发OutOfMemoryError问题。
网友评论