2016-05-05 138 views
0

我在Spring啓動應用程序使用的logback的日誌管理,我怎麼需要這些規格:配置的logback使用Spring引導

  • 記錄一切文件
  • 記錄重要的事情到控制檯
  • 使用帶有10MB的最大文件大小

回答

0

輾壓政策如果你不打算使用Spring擴展的logback,所有你需要做的就是確定什麼logback.xml(或logback.groovy)並將其放入classpath

回滾附加器可以定義爲:

appender("FILE", RollingFileAppender) { 
    file = "root.log" 
    encoder(PatternLayoutEncoder) { 
     pattern = "%date %level [%thread] %logger{10} [%file:%line] %msg%n" 
    } 
    rollingPolicy(TimeBasedRollingPolicy) { 
     fileNamePattern = "root-%d{yyyy-MM-dd}.log" 
     maxHistory = 7 
    } 
} 

這是常規,它是一個基於時間的回滾的appender。你可以谷歌更多的例子。

如果您打算使用彈簧擴展,請參閱here

+0

我已經找到了解決辦法,無論如何,非常感謝你 – jemlifathi

+0

@jemlifathi你可以在這裏發佈你的解決方案。 –

+1

@JordanBorisov我已經發布了一個答案,我發佈了另一個包含Redis appender的答案 – jemlifathi

0

我用這個logback.xml配置文件和它的工作相當不錯:

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

    <property name="DEV_HOME" value="logging"/> 
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <charset>UTF-8</charset> 
      <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern> 
     </encoder> 
    </appender> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${DEV_HOME}/debug.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- daily rollover. Make sure the path matches the one in the file element or else 
      the rollover logs are placed in the working directory. --> 
      <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern> 

      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <maxFileSize>5MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
      <!-- keep 30 days' worth of history --> 
      <maxHistory>30</maxHistory> 
     </rollingPolicy> 

     <encoder> 
      <charset>UTF-8</charset> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <root level="DEBUG"> 
     <appender-ref ref="FILE"/> 
    </root> 
    <root level="INFO"> 
     <appender-ref ref="consoleAppender" /> 
    </root> 
</configuration> 
0

這種替代含有Redis的附加器:

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

    <property name="DEV_HOME" value="logs"/> 

    <!--appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashAccessTcpSocketAppender"> 
     <destination>127.0.0.1:4560</destination> 

     <waitStrategyType>sleeping</waitStrategyType> 
     <includeCallerInfo>true</includeCallerInfo> 
     <encoder class="net.logstash.logback.encoder.LogstashAccessEncoder" > 
      <timeZone>UTC+1</timeZone> 
     </encoder> 
    </appender--> 

    <appender name="REDIS" class="com.cwbase.logback.RedisAppender"> 
     <host>localhost</host> 
     <port>6379</port> 
     <key>fouras-logs</key> 
     <type>fouras-log</type> 
     <database>12</database> 
     <sourceHost>localhost</sourceHost> 
     <source>fouras</source> 
    </appender> 
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <charset>UTF-8</charset> 
      <Pattern>[%d{yyyy-MM-dd HH:mm:ss:SSS} %thread %-5level %logger{1000} - %msg]%n</Pattern> 
     </encoder> 
    </appender> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${DEV_HOME}/debug.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- daily rollover. Make sure the path matches the one in the file element or else 
      the rollover logs are placed in the working directory. --> 
      <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern> 

      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <maxFileSize>5MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
      <!-- keep 30 days' worth of history --> 
      <maxHistory>30</maxHistory> 
     </rollingPolicy> 

     <encoder> 
      <charset>UTF-8</charset> 
      <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS} %thread %-5level %logger{1000} - %msg]%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="com.datcom.fouras" level="TRACE"> 
     <appender-ref ref="REDIS"/> 
     <!--appender-ref ref="LOGSTASH"/--> 
    </logger> 
    <root level="DEBUG"> 
     <appender-ref ref="FILE"/> 
    </root> 
    <root level="INFO"> 
     <appender-ref ref="CONSOLE"/> 
     <!--appender-ref ref="REDIS"/--> 
    </root> 
</configuration>