首頁 > 軟體

解決springboot設定logback-spring.xml不起作用問題

2022-11-23 14:00:39

網上的操作方式是

我沒有進行嘗試,感興趣的可以試試

nohup java -Dserver.port=8848 -Dlogging.level.root=INFO -Xmx256M -Xms256M -jar pig-register.jar --logging.config=classpath:logback-spring.xml >> /dev/null 2>&1 &

我的解決方式

1. logback-spring.xml 指定環境

在logback-spring.xml 中的 springProfile 指定相應的組態檔就可以了 ,如果是測試專案,將設定資訊都寫到application.yml 裡面,可以建立一個空的 applicaiton-local.yml 檔案

2. application.yml啟用指定設定環境

3. logback-sping.xml檔案

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <property name="LOG_HOME" value="./logs"/>
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %n
            </Pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
    </appender>
    <appender name="fileInfoLog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
        </filter>
        <File>${LOG_HOME}/macDay_info.log</File>
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/macDay_info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>
    <appender name="fileErrorLog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <File>${LOG_HOME}/macDay_error.log</File>
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/macDay_error.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>
 
    <springProfile name="local">
        <root level="info">
            <appender-ref ref="consoleAppender"/>
            <appender-ref ref="fileInfoLog"/>
            <appender-ref ref="fileErrorLog"/>
        </root>
    </springProfile>
 
    <springProfile name="dev">
        <root level="info">
            <appender-ref ref="consoleAppender"/>
            <appender-ref ref="fileInfoLog"/>
            <appender-ref ref="fileErrorLog"/>
        </root>
    </springProfile>
 
    <springProfile name="sim">
        <root level="info">
            <appender-ref ref="consoleAppender"/>
            <appender-ref ref="fileInfoLog"/>
            <appender-ref ref="fileErrorLog"/>
        </root>
    </springProfile>
 
</configuration>

4. 啟動服務

控制檯會正常的進行紀錄檔的列印 

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com