springboot的yml配置文件整合logback,按照不同環境不同配置打印


yml文件中添加配置:

##########  日志 配置 - START  ##########
logging:
config: classpath:logback-spring.xml # logback日志配置
yh:
logFileHome: # 各個環境的配置文件目錄
dev: d:/logs/
test: /www/wwwroot/yhApps/logs/
pro: /www/wwwroot/yhApps/logs/
pattern: "%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n"
maxHistory: 100 # 最大保存100個(天)的歷史文件

resources目錄下添加文件:logback-spring.xml ,文件內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 屬性描述 scan:性設置為true時,配置文件如果發生改變,將會被重新加載,默認值為true scanPeriod:設置監測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。當scan為true時,此屬性生效。默認的時間間隔為1分鍾。
    debug:當此屬性設置為true時,將打印出logback內部日志信息,實時查看logback運行狀態。默認值為false。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>yh-springboot-basic</contextName>
    <!-- 文件輸出格式 -->
    <!--<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />-->
    <springProperty scope="context" name="pattern" source="logging.yh.pattern"/>
    <!--最大歷史日志文件數量-->
    <springProperty scope="context" name="maxHistory" source="logging.yh.maxHistory"/>
    <!--應用名稱-->
    <springProperty scope="context" name="appName" source="my.info.appName"/>

    <!-- dev文件路徑 -->
    <springProperty scope="context" name="devLogHome" source="logging.yh.logFileHome.dev"/>
    <!-- test文件路徑 -->
    <springProperty scope="context" name="testLogHome" source="logging.yh.logFileHome.test"/>
    <!-- pro文件路徑 -->
    <springProperty scope="context" name="proLogHome" source="logging.yh.logFileHome.pro"/>

    <!-- 開發環境 -->
    <springProfile name="dev">
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${pattern}</pattern>
            </encoder>
        </appender>

        <!-- 每天產生一個文件 -->
        <appender name="CONSOLE-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路徑 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 文件名稱 -->
                <fileNamePattern>${devLogHome}/${appName}_log/debug.%d{yyyy-MM-dd}.log</fileNamePattern>
                <!-- 文件最大保存歷史數量 -->
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${pattern}</pattern>
            </layout>
        </appender>

        <logger name="com.yh" level="debug"/>
        <root level="info">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="CONSOLE-FILE"/>
        </root>
    </springProfile>

    <!-- 測試環境 -->
    <springProfile name="test">
        <!-- 每天產生一個文件 -->
        <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路徑 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 文件名稱 -->
                <fileNamePattern>${testLogHome}/${appName}_log/info.%d{yyyy-MM-dd}.log</fileNamePattern>
                <!-- 文件最大保存歷史數量 -->
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${pattern}</pattern>
            </layout>
        </appender>
        <root level="info">
            <appender-ref ref="TEST-FILE"/>
        </root>
    </springProfile>

    <!-- 生產環境 -->
    <springProfile name="pro">
        <appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${proLogHome}/${appName}_log/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${pattern}</pattern>
            </layout>
        </appender>
        <root level="warn">
            <appender-ref ref="PROD_FILE"/>
        </root>
    </springProfile>
</configuration>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM