“后浪”日志框架logback的使用和配置文件详解( 四 )

备注:上述配置表示每天生成一个日志文件,保存30天的日志文件 。
<configuration><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>test.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>tests.%i.log.zip</fileNamePattern><minIndex>1</minIndex><maxIndex>3</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>5MB</maxFileSize></triggeringPolicy><encoder><pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern></encoder></appender><root level="DEBUG"><appender-ref ref="FILE" /></root> </configuration>备注:上述配置表示按照固定窗口模式生成日志文件,当文件大于5MB时,生成新的日志文件 。窗口大小是1到3,当保存了3个归档文件后,将覆盖最早的日志 。<encoder>:对记录事件进行格式化 。负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流 。PatternLayoutEncoder 是唯一有用的且默认的encoder ,有一个<pattern>节点,用来设置日志的输入格式 。使用“%”加“转换符”方式,如果要输出“%”,则必须用“”对“%”进行转义 。
5.4、还有SocketAppender、SMTPAppender、DBAppender、SyslogAppender、SiftingAppender,并不常用,这里就不详解了 。大家可以参考官方文档(
http://logback.qos.ch/documentation.html),还可以编写自己的Appender 。

  • (6)子节点<loger>:用来设置某一个包或具体的某一个类的日志打印级别、以及指定<appender> 。<loger>仅有一个name属性,一个可选的level和一个可选的additivity属性 。
可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger
name: 用来指定受此loger约束的某一个包或者具体的某一个类 。
level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别 。如果未设置此属性,那么当前loger将会继承上级的级别 。
additivity: 是否向上级loger传递打印信息 。默认是true 。同<loger>一样,可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger 。
  • (7)子节点<root>:它也是<loger>元素,但是它是根loger,是所有<loger>的上级 。只有一个level属性,因为name已经被命名为"root",且已经是最上级了 。
level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,不能设置为INHERITED或者同义词NULL 。默认是DEBUG 。
六、常用logger配置
<!-- show parameters for hibernate sql 专为 Hibernate 定制 --><logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" /><logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" /><logger name="org.hibernate.SQL" level="DEBUG" /><logger name="org.hibernate.engine.QueryParameters" level="DEBUG" /><logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" /><!--myibatis log configure--><logger name="com.Apache.ibatis" level="TRACE"/><logger name="java.sql.Connection" level="DEBUG"/><logger name="java.sql.Statement" level="DEBUG"/><logger name="java.sql.PreparedStatement" level="DEBUG"/>七、Demo
  • (1)添加依赖包logback使用需要和slf4j一起使用,所以总共需要添加依赖的包有slf4j-api
logback使用需要和slf4j一起使用,所以总共需要添加依赖的包有slf4j-api.jar,logback-core.jar,logback-classic.jar,logback-access.jar这个暂时用不到所以不添加依赖了,maven配置
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><logback.version>1.1.7</logback.version><slf4j.version>1.7.21</slf4j.version></properties><dependencies><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version><scope>compile</scope></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>${logback.version}</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>${logback.version}</version></dependency></dependencies>


推荐阅读