天天看點

仵航說 SpringBoot項目配置Log日志服務-仵老大

今天上司讓我配置一個log日志服務,我哪裡見過喲,然後就去百度了,結果挨個試下去,找到了一個能用的,分享給大家

大緻四個地方 分别是

1.pom檔案需要引入依賴

2.建立一個TestLog類

3.在yml中或者properties中寫log.xml的路徑

4.添加一個Logback.xnk檔案

首先來個配置完成的圖檔

仵航說 SpringBoot項目配置Log日志服務-仵老大

第一步首先先修改pom檔案,讓他下載下傳依賴

仵航說 SpringBoot項目配置Log日志服務-仵老大
<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    <!--log結束-->  
           

第二步寫個main()函數作為啟動入口,建立resource檔案夾存放靜态檔案

仵航說 SpringBoot項目配置Log日志服務-仵老大
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestLog {
static Logger logger = LoggerFactory.getLogger(TestLog.class);
public static void main(String[] arge) {
logger.debug(" debug");
logger.info(" info");
logger.error(" error");
logger.warn(" warn");
}
}
           

第三步添加一個application.yml或者application.properrties配置檔案均可,添加以下配置指明logback的配置xml路徑

仵航說 SpringBoot項目配置Log日志服務-仵老大
logging:
config: classpath:logback.xml
           

第四步添加logback.xml檔案,用于做log的相關配置

仵航說 SpringBoot項目配置Log日志服務-仵老大
<!-- 配置項, 通過此節點配置日志輸出位置(控制台、檔案、資料庫)、輸出格式等-->
<!-- ConsoleAppender代表輸出到控制台 -->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
    <!-- layout代表輸出格式 -->
    <layout class="ch.qos.logback.classic.PatternLayout">
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
    </layout>
</appender>
<!-- 日志輸出檔案 -->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
    </encoder>
    <!-- 滾動記錄檔案,先将日志記錄到指定檔案,當符合某個條件時,将日志記錄到其他檔案 RollingFileAppender-->
    <!-- 滾動政策,它根據時間來制定滾動政策.既負責滾動也負責觸發滾動 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- 輸出路徑 -->
        <fileNamePattern>${logPath}/info/%d.log</fileNamePattern>
        <!-- 可選節點,控制保留的歸檔檔案的最大數量,超出數量就删除舊檔案假設設定每個月滾動,且<maxHistory>是6,
        則隻儲存最近6個月的檔案,删除之前的舊檔案。注意,删除舊檔案是,那些為了歸檔而建立的目錄也會被删除-->
        <maxHistory>${maxHistory}</maxHistory>
    </rollingPolicy>
    <!-- 按照固定視窗模式生成日志檔案,當檔案大于20MB時,生成新的日志檔案。視窗大小是1到3,當儲存了3個歸檔檔案後,将覆寫最早的日志。
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logPath}/%d{yyyy-MM-dd}/.log.zip</fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>3</maxIndex>
    </rollingPolicy>   -->
    <!-- 檢視目前活動檔案的大小,如果超過指定大小會告知RollingFileAppender 觸發目前活動檔案滾動
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>   -->
</appender>
<!-- 特殊記錄Error日志 -->
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!-- 隻記錄ERROR級别日志,添加範圍過濾,可以将該類型的日志特殊記錄到某個位置 -->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>ERROR</level>
    </filter>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${logPath}/error/%d.log</fileNamePattern>
        <!-- 日志最大的曆史 60天 -->
        <maxHistory>60</maxHistory>
    </rollingPolicy>
</appender>

<!-- 根節點,表名基本的日志級别,裡面可以由多個appender規則 -->
<!-- level="info"代表基礎日志級别為info -->
<root level="info">
    <!-- 引入控制台輸出規則 -->
    <appender-ref ref="consoleLog" />
    <appender-ref ref="fileInfoLog" />
    <appender-ref ref="fileErrorLog" />
</root>
           

運作之後就可以看到日志輸出到控制台跟檔案中了

仵航說 SpringBoot項目配置Log日志服務-仵老大
仵航說 SpringBoot項目配置Log日志服務-仵老大

發現沒有debug日志的輸出,因為我們節點規定的記錄的是info級别的,他隻會記錄等于或者高于info級别的,其他的都會忽略保證生成環境産生過多日志,加油打勞工

繼續閱讀