天天看點

logback.xml日志檔案配置

logback.xml日志檔案配置

                  在項目當中日志也成為必不可少的一部分,除了再控制台上列印控制台日志以外,在伺服器上運作時候日志都是記錄到日志檔案裡面,那麼日志檔案一般是怎麼配置的,放在哪個目錄下面呢,這些都是需要我們思考的,首先我們看下日志引進都需要哪些包:

<!--與日志相關的jar -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.2</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.0.13</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.0.13</version>
        </dependency>
           

下面就是配置檔案寫法,命名為logback.xml放到src/main/resources根目錄下,程式會自動加載日志檔案

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <contextName>logback-4001</contextName>
    <jmxConfigurator />
    <!-- 日志路徑 -->
    <property name="LOG_HOME" value=" /home/spirits/service/logs/" />

    <!-- console控制台日志 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </layout>
    </appender>

    <!-- 程式運作日志記錄-3天-->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/info/spirit-info-%d{yyyy-MM-dd}.log</FileNamePattern>
            <MaxHistory>3</MaxHistory>  <!--儲存天數  -->
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern>
        </layout>
    </appender>

    <!-- 錯誤日志記錄-15天 -->
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/error/spirit-error-%d{yyyy-MM-dd}.log</FileNamePattern>
            <MaxHistory>15</MaxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern>
        </layout>
    </appender>

    <root level="info">
        <appender-ref ref="stdout" />
        <appender-ref ref="ERROR_FILE" />
        <appender-ref ref="INFO_FILE" />
    </root>

</configuration>
           

若不放到src/main/resources根目錄下,則需要引入,比如此時放在src/main/resources/META-INF/logback/下,檔案名為logback-test.xml,則需要在src/main/resources根目錄下面建立logback.xml,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<include resource="META-INF/logback/logback-test.xml"/>
</configuration>