【JAVA】logback日誌

1. pom.xml

<dependency>
   <groupId>ch.qos.logback</groupId
   <artifactId>logback-classic</artifactId>
   <version>1.2.3</version>
</dependency>
<dependency>
   <groupId>org.logback-extensions</groupId>
   <artifactId>logback-ext-spring</artifactId>
   <version>0.1.2</version>
   <exclusions>
       <exclusion>
            <artifactId>logback-classic</artifactId>
            <groupId>ch.qos.logback</groupId>
       </exclusion>
   </exclusions>
</dependency>

2. logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定義日誌文件的存儲地址 勿在 LogBack 的配置中使用相對路徑 -->
    <property name="LOG_HOME" value="/Users/zhangenke/Documents/construn/logback"/>
    <!-- 控制檯輸出 -->
    <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.SSS} [%thread] %X{requestUUID} %X{userId} %X{User-Agent} %X{requestMap}
                %-5level %message %n
            </pattern>
        </encoder>
    </appender>

    <!-- 按照每天生成日誌文件 -->
    <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/trace.log</file>
        <!--不能使用encoding 指定編碼格式UTF-8,新版本不允許這樣做-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--必須要加%i否則啓動報錯-->
            <FileNamePattern>${LOG_HOME}/trace.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>10</MaxHistory>
            <MaxFileSize>2048MB</MaxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <layout>
            <pattern>[%thread][%date{yyyy-MM-dd HH:mm:ss}][%-5level] [%logger:%line]%X{requestUUID} %X{userId}
                %X{User-Agent} %X{requestMap} %msg%n
            </pattern>
        </layout>
    </appender>

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/info/info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/info/info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>10</MaxHistory>
            <MaxFileSize>2048MB</MaxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <layout>
            <pattern>[%thread][%date{yyyy-MM-dd HH:mm:ss}][%-5level] [%logger:%line] %X{requestUUID} %X{userId}
                %X{User-Agent} %X{requestMap} %msg%n
            </pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/debug/debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/debug/debug.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>10</MaxHistory>
            <MaxFileSize>2048MB</MaxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <layout>
            <pattern>[%thread][%date{yyyy-MM-dd HH:mm:ss}][%-5level] [%logger:%line] %X{requestUUID} %X{userId}
                %X{User-Agent} %X{requestMap} %msg%n
            </pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>


    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/warn/warn.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/warn/warn.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>10</MaxHistory>
            <MaxFileSize>2048MB</MaxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <layout>
            <pattern>[%thread][%date{yyyy-MM-dd HH:mm:ss}][%X{userId}] [%X{requestUUID}][%X{terminalPhone}]
                [%-5level] [%logger:%line] %X{requestUUID} %X{userId} %X{User-Agent} %X{requestMap} %msg%n
            </pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>


    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/error/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/error/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>10</MaxHistory>
            <MaxFileSize>2048MB</MaxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <layout>
            <pattern>[%thread][%date{yyyy-MM-dd HH:mm:ss}][%-5level] [%logger:%line] %X{requestUUID} %X{userId}
                %X{User-Agent} %X{requestMap} %msg%n
            </pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 打印sql -->
    <appender name="daoFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/SQL/SQL.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>10</MaxHistory>
            <MaxFileSize>2048MB</MaxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %X{requestUUID} %X{userId} %X{User-Agent}
                %X{requestMap} %logger{50} %message %n
            </pattern>
        </encoder>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>
    <logger name="dao" level="DEBUG">
        <!--daoFILE爲實際定義的appender-->
        <appender-ref ref="daoFILE"/>
    </logger>


    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="TRACE_FILE"/>
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="DEBUG_FILE"/>
        <appender-ref ref="WARN_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
        <appender-ref ref="daoFILE"/>
    </root>
</configuration>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章