logback 使用異步和緩存提升日志效率


主要是使用AsyncAppender 提供異步功能,然后使用 immediteFlush配置使用緩存(緩存8k).
注意: 高版本的logback 已經指出SizeAndTimeBasedRollingPolicy , 我的版本是1.0.13可以使用SizeAndTimeBasedFNATP實現。
<?xml version="1.0" encoding="UTF-8"?>  
  
<configuration>  
    <substitutionProperty name="log.base" value="/home/wtposp/logs" />
    </appender>-->
    <appender name="rollout" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>   
        <file>${log.base}/wtposp.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.base}/%d{yyyy-MM-dd}/wtposp-%i.log.zip</fileNamePattern>
            <MaxHistory>30</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 設置文件大於1KB進行壓縮歸檔 -->
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%date{HH:mm:ss} [%X{sysUUID}] %-5level %c{0}:%L - %msg%n</pattern>
            <immediateFlush>false</immediateFlush>
        </encoder>
       
    </appender>  
    
    
    <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
        <!-- 不丟失日志.默認的,如果隊列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默認的隊列的深度,該值會影響性能.默認值為256 -->
        <queueSize>256</queueSize>
        <!-- 添加附加的appender,最多只能添加一個 -->
        <appender-ref ref ="rollout"/>
        <!--<appender-ref ref ="errorAppender"/>-->
    </appender>
    
    <root>  
        <level value="INFO" />
    <appender-ref ref="ASYNC" />
    </root>  
    
</configuration>

 


免責聲明!

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



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