什么是Logback?
Logback 继承自 log4j。
Logback 的架构非常的通用,适用不同的使用场景。Logback 被分成三个不同的模块:logback-core,logback-classic,logback-access。
logback-core 是其它两个模块的基础。logback-classic 模块可以看作是 log4j 的一个优化版本,它天然的支持 SLF4J,所以你可以随意的从其它日志框架(例如:log4j 或者 java.util.logging)切回到 logack。
logback-access 可以与 Servlet 容器进行整合,例如:Tomcat、Jetty。它提供了 http 访问日志的功能。
logback一共有5个日志等级:DEBUG < INFO < WARN < ERROR < FATAL
DEBUG:是等级最低,打印系统运行时更详细的日志信息。
INFO:用来反馈系统的当前状态给最终用户的。
WARN:指的是有潜在错误,但未发生错误。
ERROR:的是出现错误事件,但系统仍然能够运行。
FATAL:是最严重的错误时间,系统被终止运行。
开始配置
在了解logback的相关背景后,就能开始配置了,我这里用的是springboot来进行配置:
pom.xml引入依赖包:
<!-- 日志 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
文件目录
application-dev.properties配置 :
#logback所在路径
logging.config=classpath:logback/logback-spring-dev.xml
# 配置logging.level.*来具体输出包的日志级别
logging.level.root=INFO
logging.level.com.xzm.bigdata.mapper=DEBUG
基本需要的都配置好了,接下来我们就logback-spring-dev.xml来对日志信息的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Default logback configuration provided for import, equivalent to the programmatic
initialization performed by Boot
-->
<configuration debug="false">
<!-- 定义日志存储地方 -->
<property name="LOG_HOME" value="logs" />
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- 格式化输出: %d表示日期, %thread表示线程名称, %-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger[50] - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出文件名 -->
<FileNamePattern>${LOG_HOME}/server-log_%d{yyyy-MM-dd}.log</FileNamePattern>
<!-- 日志保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- 格式化输出: %d表示日期, %thread表示线程名称, %-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger[50] - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="jdbc.sqltiming" level="debug"/>
<logger name="com.ibatis" level="debug" />
<logger name="com.ibatis.common.jdbc.SimpleDataSource" level="debug" />
<logger name="com.ibatis.common.jdbc.ScriptRunner" level="debug" />
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="debug" />
<logger name="java.sql.Connection" level="debug" />
<logger name="java.sql.Statement" level="debug" />
<logger name="java.sql.PreparedStatement" level="debug" />
<logger name="java.sql.ResultSet" level="debug" />
<logger name="org.springframework.web" level="WARN"/>
<logger name="org.springframework.jdbc" level="WARN"/>
<logger name="org.apache.shiro" level="WARN"/>
<logger name="com.lew.jlight" level="INFO"/>
<!-- root -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
配置完成,接下来我们尝试运行项目,测试下是否配置成功。
测试
可以看到格式和我们在logback-dev.xml配置的信息一样,则配置成功。
结尾
logback的功能不止这么点,还有日志字体颜色的改变这些功能,详情的大家可以去查阅下资料。