spring logback 配置


<appender name="DubboInfo"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>./data/log/sim-kpi.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>./data/log/sim-kpi.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!-- or whenever the file size reaches 100MB -->
            <maxFileSize>5MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%date [%thread] %-5level %logger{80} - %msg%n</Pattern>
    </layout>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>DEBUG</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>NEUTRAL</onMismatch>
    </filter>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>INFO</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
</appender>

 ./data/log/sim-kpi.log 此路徑表示在項目根目錄路徑下生成日志文件

勿在 LogBack 的配置中使用相對路徑

請看下面這段配置,這是無法工作的:

 

[XML]  view plain  copy
 
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <configuration>  
  3.     <contextName>JTheque</contextName>  
  4.    
  5.     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  6.         <file>logs/jtheque.log</file>  
  7.    
  8.         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">  
  9.             <FileNamePattern>logs/jtheque.%i.log.zip</FileNamePattern>  
  10.             <MinIndex>1</MinIndex>  
  11.             <MaxIndex>5</MaxIndex>  
  12.         </rollingPolicy>  
  13.    
  14.         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
  15.             <MaxFileSize>5MB</MaxFileSize>  
  16.         </triggeringPolicy>  
  17.    
  18.         <layout class="ch.qos.logback.classic.PatternLayout">  
  19.             <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>  
  20.         </layout>  
  21.     </appender>  
  22.    
  23.     <root level="DEBUG">  
  24.         <appender-ref ref="FILE"/>  
  25.     </root>  
  26. </configuration>  

使用該配置,不會生成任何日志文件,這可能是 LogBack 的 bug,解決的辦法就是使用絕對路徑,你可以用一些系統變量來代替,例如:

 

[XML]  view plain  copy
 
  1. ...  
  2. <file>${user.dir}/logs/jtheque.log</file>  
  3.   
  4. <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">  
  5.     <FileNamePattern>${user.dir}/logs/jtheque.%i.log.zip</FileNamePattern>  
  6.     <MinIndex>1</MinIndex>  
  7.     <MaxIndex>5</MaxIndex>  
  8. </rollingPolicy>  
  9. ...  

現在就好了,希望對某些使用 LogBack 的人有幫助。

 

其實使用相對路徑是能產生日志文件的,只是這個相對路徑是相對與Eclipse(我是使用eclipse開發的,在eclipse啟動的),我發現日志全部跑到eclipse安裝目錄里面去了

 

不過看樣子,logback是不推薦使用相對路徑來記錄日志文件,個人覺得確實使用一些環境變量來引用絕對路徑要更好控制一點

 

tomcat下可以用:${catalina.base}/logs/your_log.log

 

  一直使用相對路徑. 沒發現問題.  使用你這個配置也沒問題. 可能你用的版本比較老,用最新的時會有警告,
  http://logback.qos.ch/codes.html#layoutInsteadOfEncoder
   ps:  logback在當打包時目錄不存在時不會自動創建的目錄,  需要做小小的修改才行.

 

 

1, 把日志發送到郵件中

2, 把日志保存到數據庫中(有異步么?)

 

官方文檔有: http://logback.qos.ch/manual/appenders.html

 

  • 線上會有Rolling日志, 放到磁盤的某個特殊位置(tomcat/logs/)
  • 本地Console即可
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <springProfile name="production">
        <appender name="dailyRollingFileAppender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <File>${catalina.base}/logs/sim-kpi.log</File>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- daily rollover -->
                <FileNamePattern>${catalina.base}/logs/sim-kpi.%d{yyyy-MM-dd}.%i.log
                </FileNamePattern>
                <!-- keep 30 days' worth of history -->
                <maxHistory>1</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <!-- or whenever the file size reaches 100MB -->
                    <maxFileSize>20KB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level
                    %logger{80}-%msg%n</Pattern>
            </layout>
        </appender>
    </springProfile>
    <springProfile name="embedded">
        <root level="INFO">
            <appender-ref ref="CONSOLE" />
        </root>
    </springProfile>
    <springProfile name="production">
        <root level="INFO">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="dailyRollingFileAppender" />
        </root>
    </springProfile>
</configuration>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM