logback為不同的包或類指定輸出日志文件


對日志分割的常見需求是,需要按不同的等級進行輸出,這個的配置方式類似如下,在appender節點內添加內容

<appender name="FILE-INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter" >
            <Level>INFO</Level>
            <OnMatch>ACCEPT</OnMatch>
            <OnMismatch>DENY</OnMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/admin-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
            <maxFileSize>1GB</maxFileSize>
            <maxHistory>7</maxHistory>
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n
            </Pattern>
        </layout>
    </appender>

其他ERROR級別的日志同理配置,關於這個filter,其實還可以去實現自定義的filter,然后class寫這個類的引用即可,類似com.xxx.yyy.filter.LogFilter

但是今天突然有個新的需求,是需要獨立某個包或者類的文件出來,原因是者塊的日志需要單獨分析,且量多,於是在一頓google之后,得到如下的配置結果

下面設置logger中,表示對類或者包的日志輸出進行限制,注意不需要再加入到root中去

<logger name="com.xxx.yyyy.controller.WebLogController"  level="INFO" additivity="false" >
        <appender-ref ref="FRONT-END-FILE"/>
        <appender-ref ref="STDOUT"/>
    </logger>


    <root level="INFO">
        <appender-ref ref="FILE-1"/>
        <appender-ref ref="FILE-2"/>
    </root>

配置的方式也是很簡單,添加一個logger節點,name是你需要控制到的包或類,level是輸出等級,additivity表示是否也需要添加到root日志中去
然后root日志還是和以往一樣,這樣在配置好了之后,運行時能看到,WebLogController的日志被獨立開來了,沒有出現root配置的文件當中


免責聲明!

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



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