logback日志模板

215 阅读1分钟
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 此xml在spring-boot-1.5.3.RELEASE.jar里 -->
    <!--    <include resource="org/springframework/boot/logging/logback/defaults.xml" />-->
    <!--    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />-->
    <!-- 开启后可以通过jmx动态控制日志级别(springboot Admin的功能) -->
    <!--<jmxConfigurator/>-->
    <contextName>logback-custom</contextName>
    <!-- 定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
    <springProperty scope="context" name="LOG_HOME" source="log.file"/>

    <!-- 输出到控制台 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        encoders are assigned the type
        ch.qos.logback.classic.encoder.PatternLayoutEncoder by default
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- error日志 -->
    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <prudent>true</prudent>
        <append>true</append>
        <encoder>
            <pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 添加.gz 历史日志会启用压缩 大大缩小日志文件所占空间 -->
            <!--<fileNamePattern>/home/hfw-client/hfw_log/stdout.log.%d{yyyy-MM-dd}.log</fileNamePattern>-->
            <fileNamePattern>${LOG_HOME}/error/error-%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>7</maxHistory><!--  保留7天日志 -->
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- file日志 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <prudent>true</prudent>
        <append>true</append>
        <encoder>
            <pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 添加.gz 历史日志会启用压缩 大大缩小日志文件所占空间 -->
            <!--<fileNamePattern>/home/hfw-client/hfw_log/stdout.log.%d{yyyy-MM-dd}.log</fileNamePattern>-->
            <fileNamePattern>${LOG_HOME}/file/file-%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>7</maxHistory><!--  保留7天日志 -->
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <logger name= "fileLog" level="INFO" additivity="false">
        <appender-ref ref="FILE"/>
        <appender-ref ref="ERROR"/>
    </logger>

    <logger name="com.gavin" level="debug"/>
    <logger name="com.gavin.dao" level="debug"/>
    <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" />

    <!--    &lt;!&ndash; 设置包打印日志级别,例如把所有mapper文件的sql都出到控制台,还可以精确到某个类 &ndash;&gt;-->
    <!--    <logger name= "com.jinhaoxun.acdao.applymapper" level="TRACE" />-->
    <!--    <logger name= "com.jinhaoxun.acdao.shiromapper" level="TRACE" />-->

    <root level="info">
        <appender-ref ref="ERROR"/>
        <appender-ref ref="STDOUT"/>
    </root>

</configuration>