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>