<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" >
<property name="logTextPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %X{username} %-5level %logger{80} [%L] - %msg%n"/>
<property name="logFileBase" value="/home"/>
<!-- 子节点<appender>:负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<Encoding>GBK</Encoding>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${logTextPattern}</pattern>
</layout>
</appender>
<!-- 按照每天生成日志文件 RollingFileAppender滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。有以下子节点:-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logFileBase}/myApp.log</file>
<Encoding>UTF-8</Encoding>
<!-- 按照每天生成日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${logFileBase}/logFile.%d{yyyy-MM-dd}.log</FileNamePattern>
<!-- 保存30天的日志文件 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!-- <layout class="ch.qos.logback.classic.PatternLayout">
格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</layout> -->
<!--日志文件大小超限后,回滚,压缩日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${logFileBase}/myApp.%i.log.zip</fileNamePattern>
<!-- 按照固定窗口模式生成日志文件 窗口大小是1到20,当保存了20个归档文件后,将覆盖最早的日志。-->
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>51200KB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${logTextPattern}</pattern>
</layout>
</appender>
<!-- 子节点<logger>:用来设置某一个包或具体的某一个类的日志打印级别、以及指定<appender>。
<logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。
可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger
name: 用来指定受此logger约束的某一个包或者具体的某一个类。
level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,
还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。 如果未设置此属性,那么当前logger将会继承上级的级别。
addtivity: 是否向上级loger传递打印信息。默认是true。同<logger>一样,可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个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--> <!--现发现此处并不能控制SQL的打印-->
<logger name="java.sql.Connection" level="INFO" />
<logger name="java.sql.Statement" level="INFO" />
<logger name="java.sql.PreparedStatement" level="INFO" />
<logger name="com.plan.souler" level="DEBUG" /> <!--这里的级别 控制一切-->
<logger name="com.plan.souler.service.impl.LoginServiceImpl" level="INFO" />
<logger name="com.plan.souler.controller.LoginAction" level="INFO" />
<logger name="com.plan.souler.**.dao.*Dao" level="DEBUG" />
<logger name="com.plan.souler.**.dao.*Mapper" level="DEBUG" />
<logger name="sqlMap" level="DEBUG" />
<!--下层路径或具体类 配置的日志级别 低于 上层路径的日志级别时 决定者为 上层
下层路径或具体类 配置的日志级别 高于 上层路径的日志级别时 决定者为 下层-->
<!-- 日志输出级别 TRACE < DEBUG < INFO < WARN < ERROR-->
<!--现发现此处可以控制SQL的打印-->
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>