vue+spring boot從零開發(fā)BBS項目---后端篇(二)

后端技術(shù)棧之日志框架logback

  • 框架介紹
  • 框架引入
  • 框架配置
  • 框架使用

框架介紹

Logback是由log4j創(chuàng)始人設(shè)計的另一個開源日志組件,官方網(wǎng)站: http://logback.qos.ch。它當前分為下面下個模塊:

  • logback-core:其它兩個模塊的基礎(chǔ)模塊
  • logback-classic:它是log4j的一個改良版本,同時它完整實現(xiàn)了slf4j API使你可以很方便地更換成其它日志系統(tǒng)如log4j或JDK14 Logging
  • logback-access:訪問模塊與Servlet容器集成提供通過Http來訪問日志的功能

框架引入

spring boot本身已經(jīng)集成了logback框架,直接引入即可。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</dependency>

框架配置

在src/main/resources目錄下添加logback.xml文件,即可自定義日志配置。

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <!--定義日志文件的存儲地址,后面通過${LOG_HOME}獲取,勿在 LogBack 的配置中使用相對路徑,存在疑問? 我這里使用相對地址就是當前目錄下 -->
    <property name="LOG_HOME" value="logs" />
    <!-- 可選:定義文件名稱 -->
    <property name="PROJECT_NAME" value="logproject" />
    <!-- appender 必選節(jié)點。作用:日志輸出目的地, 配置后由 root 標簽進行選擇控制是否輸出到目的地 -->
    <!-- 控制臺輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder 日志格式化 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- appender 必選節(jié)點。作用:日志輸出目的地, 配置后由 root 標簽進行選擇控制是否輸出到目的地 -->
    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- rollingPolicy 日志生成策略,不同的策略不同的類。 特別注意:尺寸切割和時間切割的日志類SizeAndTimeBasedRollingPolicy -->
        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件輸出的文件名 -->  <!-- 按照每天生成日志文件 -->
            <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.%d{yyyy-MM-dd}.%i.log
            </FileNamePattern>
            <!--日志文件保留天數(shù) -->
            <MaxHistory>15</MaxHistory>
            <!-- 每個日志文件大小,單位 kb、MB 等,這個功能控制不穩(wěn)定,因為打印日志速度太快,每個文件會變大。 -->
            <maxFileSize>100kb</maxFileSize>
            <!-- 日志總體積大小,超過了就會刪除前面的舊日志文件騰出空間,可以邊打印邊看結(jié)果 -->
            <totalSizeCap>10MB</totalSizeCap>
        </rollingPolicy>
        <!-- encoder 日志格式化 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!-- 日志文件最大的大小, 超過了就不打印日志了,超級坑爹,千萬別用。 -->
        <!-- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> -->
    </appender>

    <!-- root必選節(jié)點:1.基礎(chǔ)的日志輸出級別配置,2.控制那些appender輸出 -->
    <root level="INFO">
        <!-- 注意:全部注釋了,那么不輸出日志了。 但是不影響 logger 標簽的配置輸出。 -->
         <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
    <!-- logger可選節(jié)點:單獨配置某個"包"或者"某個類"下面的日志等級。 不受 root 影響-->
    <logger name="com.frxs.logproject.service">
        <level value="debug" />
        <!-- appender-ref 可選節(jié)點。作用:指定日志輸出某個appender,如果沒有指定,則不輸出。 -->
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </logger>
</configuration>

日志使用

package com.suromo.springdemo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringdemoApplication {
    private static final Logger logger = LoggerFactory.getLogger(SpringdemoApplication.class);
    public static void main(String[] args) {
        SpringApplication.run(SpringdemoApplication.class, args);
        logger.error("Hello, this is a line of log message logged by Logback hahahah");
    }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容