spring boot自定義logback.xml文件,自動以lsf4j的打印記錄格式

不多說,一言不合直接上代碼logback.xml,在resouece下面建文件logback.xml,配置如下。敬請觀看,歡迎大咖請教

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>

<!-- 設置全局log的變量路徑 -->
<property name="logPath" value="./logs"/>

<!-- 設置名稱爲STDOUT的appender爲一個控制檯輸出appender -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoder shi PatternLayoutEncoder默認的一個 -->
    <encoder>
        <!-- %d{yyyy-MM-dd HH:mm:ss.SSS} %d爲輸出日期,{yyyy-MM-dd HH:mm:ss.SSS}爲日期的格式,
        與java.text.SimpleDateFormat格式一樣 ,d也可以寫成 date-->
        <!-- [%thread] 爲[當前線程名稱] 也可以寫成 [%t] -->
        <!-- %-5p 爲輸出日記界別,並且輸出後,打印五個空格 %p亦可以寫成  %le / %level -->
        <!-- %logger{36} 表示logger名字最長36個字符,否則按照句點分割。 -->
        <!-- %file 表示此條日記信息是在哪個文件輸出的 ,也可以 %F-->
        <!-- %line 表示輸出此日記的語句位於哪一行代碼 也可以 %L-->
        <!-- %msg msg表示打印輸出的信息 也可以寫成 %m / %message -->
        <!-- %n 表示換行  -->
        <!-- 其他配置可見 PatternLayout.defaultConverterMap  -->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5le %logger{36} (%file:%line\)  -%msg  %n</pattern>
        <!-- 設置控制檯輸出編碼 -->
        <charset>UTF-8</charset>
    </encoder>
</appender>

<!-- 設置一個可以滾動的文件appender -->
<appender name="ERROR_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!-- 設置filter,決定什麼時候執行 ThresholdFilter 爲臨界值過濾器,
    過濾掉低於指定臨界值的日誌。當日志級別等於或高於臨界值時,過濾器返回NEUTRAL;當日志級別低於臨界值時,日誌會被拒絕-->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <!-- 說明是error級別以上的才執行 -->
        <level>ERROR</level>
    </filter>
    <!-- 設置文件輸出路徑和名稱-->
    <File>${logPath}/error.log</File>

    <!-- 設置滾動策略 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- 設置名稱模式 %i 索引,從0開始。。。。-->
        <fileNamePattern>/error-%d{yyyyMMdd}.log.%i</fileNamePattern>
        <!-- 設置出發滾動策略 使用時間和大小共同決定的策略-->
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!-- 測試暫時設置1kb,正常開發可以按情況設置 -->
            <maxFileSize>1kb</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <!-- 日記保留多久(d) 上面說根據時間和大小來決定,但是上面的策略只設置了大小,爲什麼呢
        官方給出的解釋是
        the maxHistory property is given to TimeBasedRollingPolicy instead of to
        the TimeBasedFileNamingAndTriggeringPolicy. This makes it more convenient
        for the user at the cost of inconsistency here.
        -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <!-- 滾動策略都設置好了,設置輸出佈局 -->
   <!-- <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern>
    </layout>-->
    <!-- 其他的layout也可以使用下面的設置方式 -->
    <encoder>
        <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern>
        <charset>UTF-8</charset>
    </encoder>


</appender>

<!-- 指定某一個包或者某一個類的打印級別以及是否傳入root進行打印 -->
<!-- additivity:是否向上級logger傳遞打印信息。默認是true。-->
<!-- <logger>可以包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個logger。-->
<!-- name:用來指定受此logger約束的某一個包或者具體的某一個類。-->
<!-- level:
    用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,還有一個特俗值INHERITED或者同義詞NULL,
    代表強制執行上級的級別。 如果未設置此屬性,那麼當前logger將會繼承上級的級別。-->

<!-- mybatis框架 數據庫相關的日記信息 -->
<!--<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" />-->

<!-- hibernate框架 數據庫相關的日記信息 -->
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="TRACE"/>
<logger name="org.hibernate.SQL" level="DEBUG"/>
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG"/>
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG"/>

<root level="INFO">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="ERROR_APPENDER"/>
</root>
</configuration>

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