天天看點

springboot使用logback-spring配置日志格式,并分環境配置

logback以-spring結尾的可以使用springboot的分環境注入特性:

直接貼代碼,放到resource下面就行了:

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

    <!-- logback-spring 的檔案可以基于環境配置,相對路徑會預設成項目根目錄開始 -->
    <springProfile name="comp">
        <property name="LOG_HOME" value="/home/houzheng/logs"/>
    </springProfile>
    <!-- home環境,windows -->
    <springProfile name="home">
        <property name="LOG_HOME" value="D:/logs"/>
    </springProfile>
    <!--控制台輸出appender-->
    <appender name="console" 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] %-5level %logger{50} - %msg%n</pattern>
            <!--設定編碼-->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--檔案輸出,時間視窗滾動-->
    <appender name="timeFileOutput" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--日志名,指定最新的檔案名,其他檔案名使用FileNamePattern -->
        <File>${LOG_HOME}/timeFile/out.log</File>
        <!--檔案滾動模式-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志檔案輸出的檔案名,可設定檔案類型為gz,開啟檔案壓縮-->
            <FileNamePattern>${LOG_HOME}/timeFile/info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <!--日志檔案保留天數-->
            <MaxHistory>30</MaxHistory>
            <!--按大小分割同一天的-->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

        <!--輸出格式-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級别從左顯示5個字元寬度%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <!--設定編碼-->
            <charset>UTF-8</charset>
        </encoder>

    </appender>

    <!--指定基礎的日志輸出級别-->
    <root level="INFO">
        <!--appender将會添加到這個loger-->
        <appender-ref ref="console"/>
        <appender-ref ref="timeFileOutput"/>
    </root>

    <!-- 單獨指定某個包的日志列印,級别,appender等   -->
    <!-- addtivity: 可選。是否向上級 loger(也就是 root 節點)傳遞列印資訊。預設為 true,
        設定addtivity是因為這裡已經指定了appender,如果再向上傳遞就會被root下的appender再次列印 -->
<!--    <logger name="com.hou.postgresql.user.service.impl.TestUserServiceImpl" level="WARN" addtivity="false">-->
<!--        <appender-ref ref="console"/>-->
<!--    </logger>-->

</configuration>