日志框架
日志概述
日志可以用来记录程序运行过程中产生的数据,并且把数据以文件的形式保存起来。一旦程序出现一些意外的情况,程序员可以通过分析日志文件,来排查问题。
日志门面
日志框架有很多种,项目在不同阶段可能需要用到不同的日志。而不同的日志的写法又有所不同,如果每次切换都要一个个修改写法,就太令人奔溃了。所以一些组织或者个人提出了日志门面的想法,意思就提供了一套日志相关功能的通用API接口,然后让具体的日志框架去做实现。
logback日志集成
1.先找到logback相关的jar包。
2.在模块目录下新建一个lib文件夹,将jar包复制到该文件夹下。
3.选中三个jar包,右键点击add As Library,作为项目的依赖库。
4.把logback.xml配置文件拷贝到src目录下。
日志配置文件
通过修改配置文件,可以控制日志的输出格式,日志的输出位置,还可以控制哪些日志输出,哪些日志不输出。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- CONSOLE :表示当前的日志信息是可以输出到控制台的。 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <!--输出流对象 默认 System.out 改为 System.err(打印的是红色的)--> <target>System.err</target> <encoder> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c [%thread] : %msg%n</pattern> </encoder> </appender> <!-- File是输出的方向通向文件的 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>utf-8</charset> </encoder> <!--日志输出路径--> <file>D:/training/javaSE/itheima-data.log</file> <!--指定日志文件拆分和压缩规则--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--通过指定压缩文件名称,来确定分割文件方式--> <fileNamePattern>D:/training/javaSE/itheima-data2-%d{yyyy-MMdd}.log%i.gz</fileNamePattern> <!--文件拆分大小--> <maxFileSize>1MB</maxFileSize> </rollingPolicy> </appender> <!-- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF , 默认debug <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。 --> <!--OFF:关闭日志,ALL:输出所有级别的日志,其他的只输出不小于自己级别的日志。--> <root level="ALL"> <!-- 控制哪些日志输出,哪些日志不输出,引入输出,不引入不输出。--> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE" /> </root> </configuration>
- 日志级别从低到高分别是:TRACE<DEBUG<INFO