服務器要記錄全部的日誌,這些日誌輸入到一個文件中太大了,就須要按大小和時間還分割,好比每小時產生一個文件或當文件大小大於200MB的時候生成一個文件。服務器
初版這樣版本,可是服務器啓動以後沒有生成日誌文件:app
<appender name="CONSOLE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.home}/consolelogs/console.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- daily rollover --> <fileNamePattern>${log.home}/consolelogs/console.%d{yyyy-MM-dd_HH}.log </fileNamePattern> <maxHistory>72</maxHistory> <maxFileSize>200MB</maxFileSize> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss} %-5level [%thread][%file:%line] : %msg%n </pattern> </encoder> </appender>
這個配置原來是參考 ch.qos.logback.core.rolling.TimeBasedRollingPolicy 這個按時間滾動方式配置的。spa
之因此沒有生效,是由於一個結節沒有配置上。日誌
<appender name="CONSOLE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.home}/consolelogs/console.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- daily rollover --> <fileNamePattern>${log.home}/consolelogs/console.%d{yyyy-MM-dd_HH}.%i.log //這裏面的%i不能少 </fileNamePattern> <maxHistory>72</maxHistory> <maxFileSize>200MB</maxFileSize> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss} %-5level [%thread][%file:%line] : %msg%n </pattern> </encoder> </appender>
上面在時間配置以後,有一個%i,這個絕對不能少。要否則在同一個小內產生多個日誌文件就沒辦法區分了,這個i就是爲了產生一個序號,防止日誌文件覆蓋。code