学习目标:
日志系统在我们的实际开发中有着重要的意义,尤其在项目上线之后排查问题有着重要的帮助!项目中尽量少使用System.out.println,这是因为Sysout是输出流操作,会对性能有一定的影响!所以有必要学习一下日志系统。
学习内容:
技术选型,总体介绍
不同日志系统的整合
具体操作
初始状态
spring默认使用commons-logging日志包,采用该日志包控制台打印的日志是这样的:
加入slf4j+logback后日志打印截图如下:
接下来将默认的commons-logging更改为slf4j+logback
具体操作:
1.引入slf4j+logback 依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
2.引入关键依赖 jcl-over-slf4j,该依赖会将jcl转换成slf4j
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
3. 编写logback.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<!-- 指定日志输出的位置-->
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 日志输出的格式-->
<!-- 按照顺序分别是:时间、日志级别、线程名称、打印日志的类、日志主体
内容、换行-->
<pattern>[%d{HH:mm:ss.SSS}] [%-5level] [%thread] [%logger]
%msg%n
</pattern>
</encoder>
</appender>
<!-- 设置全局日志级别。日志级别按顺序分别是:DEBUG、INFO、WARN、ERROR -->
<!-- 指定任何一个日志级别都只打印当前级别和后面级别的日志。-->
<root level="INFO">
<!-- 指定打印日志的appender,这里通过“STDOUT”引用了前面配置的appender -->
<appender-ref ref="STDOUT"/>
</root>
<!-- 根据特殊需求指定局部日志级别-->
<logger name="com.crowd.mapper" level="DEBUG"/>
</configuration>