Logback-Spring.xml配置文件示例

一、Logback簡介

Logback是一個功能強大的日誌框架,可以替代log4j和java.utils.logging。其特點是速度最快,具有豐富的API和靈活的配置選項。Logback除了與Java編程語言集成緊密之外,還可以集成於Spring框架之上。Logback的核心組件是模塊化的,可以使用適當的模塊進行完全自定義的配置。此外,Logback還有許多有用的附加功能,例如日誌文件壓縮、資料庫日誌記錄、靈活的上下文檔案並支持非同步路由和過濾器鏈等功能。

二、Logback的架構

Logback的架構包含三種主要的組件:Logger、Appender和Layout。Logger組件負責生成日誌記錄,Appender組件負責將日誌記錄輸出到適當類型的目的地,Layout組件負責格式化日誌事件的表示。

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

    <!--定義信息輸出到控制台上的參數-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- logback 默認採用 Filter 來實現日誌過濾 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level>
        </filter>
        <encoder>
            <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - %msg [%file:%line]%n</pattern>
        </encoder>
    </appender>

    <!--定義信息輸出到文件上的參數-->
    <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 定義過濾器,只輸出INFO級別以上的日誌到文件中-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <file>logs/debug.log</file>       <!-- 日誌輸出路徑-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxHistory>30</maxHistory>   <!--log文件保留最多30個備份-->
            <totalSizeCap>5GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%-d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} [%file:%line] - %msg%n</pattern>
        </encoder>
    </appender>
    <!--定義日誌記錄器-->
    <logger name="com.cloudfire" level="info">
        <appender-ref ref="console" />
        <appender-ref ref="fileAppender" />
    </logger>
    <root level="info">
        <appender-ref ref="console" />
        <appender-ref ref="fileAppender" />
    </root>
</configuration>

三、Logback-Spring.xml配置示例

下面是一個Logback-Spring.xml配置文件示例,在這個示例中,使用了控制台和文件兩個Appender,在級別為INFO的情況下,將日誌記錄到文件中。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml PUBLIC "-//SPRING//DTD LOGGING//EN"
        "http://www.springframework.org/dtd/spring-logging.dtd">

<configuration debug="true">

    <!--定義info日誌輸出到文件.-->
    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/data/logs/cm_db/cm_db-info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/data/logs/cm_db/cm_db-info_%d{yyyyMMdd}.log.zip</fileNamePattern>
            <maxHistory>7</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>50MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--定義debug日誌輸出到文件.-->
    <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/data/logs/cm_db/cm_db-debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/data/logs/cm_db/cm_db-debug_%d{yyyyMMdd}.log.zip</fileNamePattern>
            <maxHistory>7</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>50MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--定義error日誌輸出到文件.-->
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/data/logs/cm_db/cm_db-error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/data/logs/cm_db/cm_db-error_%d{yyyyMMdd}.log.zip</fileNamePattern>
            <maxHistory>7</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>50MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--定義輸出格式.-->
    <!--trace<debug<info<warn<error<fatal-->
    <root level="INFO">
        <appender-ref ref="console" />
        <appender-ref ref="infoAppender" />
        <appender-ref ref="debugAppender" />
        <appender-ref ref="errorAppender" />
    </root>

</configuration>

四、如何集成Logback到Spring Boot應用

在Spring Boot應用中,需要在pom.xml中加入以下依賴:

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

之後,創建logback-spring.xml文件並放置在class path或者根目錄下即可。

五、Logback與Spring框架的深度集成

在使用Spring框架時,如果想要使用Logback作為日誌框架,那麼你可以使用Spring Boot框架,它會自動配置Logback,使得Spring應用輕鬆地使用Logback。Spring Boot支持以下幾種日誌框架:log4j,Log4j2,JUL(java.utils.logging,Java’s built-in logging framework)和Logback。Spring Boot提供了一種簡單的方法來切換這些框架:替換後就可以使用一個不同的jar文件了。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

六、總結

Logback-Spring.xml配置文件是配置Logback日誌框架的關鍵文件之一,通過Logback日誌框架,可以提供強大的日誌記錄和管理功能,從而優化應用程序的性能。在Spring Boot框架中,使用Logback日誌框架創建和管理Spring應用程序的日誌,可以無縫集成Logback日誌框架並提供自動配置功能,使得開發人員可以輕鬆地使用Logback日誌框架。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270598.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-16 13:38
下一篇 2024-12-16 13:38

相關推薦

發表回復

登錄後才能評論