1. 程式人生 > >logback.xml配置如何按天輸出日誌檔案

logback.xml配置如何按天輸出日誌檔案

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

<configuration>

<appender name="stdout"

class="ch.qos.logback.core.ConsoleAppender">

<layout class="ch.qos.logback.classic.PatternLayout">

<Pattern>

%d{HH:mm:ss} [%thread] %-5level %logger{80} - %msg%n

</Pattern>

</layout>

</appender>

<appender name="R"

class="ch.qos.logback.core.rolling.RollingFileAppender">

<File>../ptvslog/server.log</File>

<layout class="ch.qos.logback.classic.PatternLayout">

<Pattern>

%d{HH:mm:ss} [%thread] %-5level %logger{80} - %msg%n

</Pattern>

</layout>

<rollingPolicy

class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

<maxIndex>2</maxIndex>

<FileNamePattern>../ptvslog/server.log.%i</FileNamePattern>

</rollingPolicy>

<triggeringPolicy

class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

<MaxFileSize>50MB</MaxFileSize>

</triggeringPolicy>

</appender>

(1)第一種配置如下時,將會使日誌檔案往後累加,而不是每日只生成當日的日誌檔案

<appender name="logfile"

class="ch.qos.logback.core.rolling.RollingFileAppender">

<File>../ptvslog/access.log</File> 

<rollingPolicy

class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<FileNamePattern>

../ptvslog/access.%d{yyyy-MM-dd}.log

</FileNamePattern>

<!-- keep 1 days worth of history --> 

<MaxHistory>1</MaxHistory>

</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">

<Pattern>

%d{yyyy-MM-dd HH:mm:ss} -%msg%n

</Pattern>

</layout>

</appender>

(2)第二種配置如下時,按天生成日誌檔案,每天的日誌檔案裡只儲存當天的日誌資訊

<appender name="logfile2"

class="ch.qos.logback.core.rolling.RollingFileAppender">

<Prudent>true</Prudent> 

<rollingPolicy

class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<FileNamePattern>

../ptvslog/access.%d{yyyy-MM-dd}.log

</FileNamePattern>

<!-- keep 60 days worth of history --> 

<MaxHistory>60</MaxHistory>

</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">

<Pattern>

%d{yyyy-MM-dd HH:mm:ss} -%msg%n

</Pattern>

</layout>

</appender>

(2)第三種配置如下時,按天生成資料夾,每個資料夾裡放當天的日誌檔案

<appender name="logDirfile"

class="ch.qos.logback.core.rolling.RollingFileAppender">

<Prudent>true</Prudent> 

<rollingPolicy

class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<FileNamePattern>

../ptvslog/%d{yyyy-MM-dd}/access.%d{yyyy-MM-dd}.log

</FileNamePattern>

</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">

<Pattern>

%d{yyyy-MM-dd HH:mm:ss} -%msg%n

</Pattern>

</layout>

</appender>

以下配置表示DataController類的INFO日誌以logDirfile輸出,additivity="false"表示只在

logDirfile輸出,不在其他輸出臺輸出,如果設定為true,表示要在其他地方也輸出。

<logger name="com.apabi.ptvs.web.DataController"

additivity="false">

<level value="INFO" />

<appender-ref ref="logDirfile" />

</logger>

<root level="INFO">

<appender-ref ref="stdout" />

<appender-ref ref="R" />

</root>

</configuration>