logBack日志配置文件

property:使用property标签集中管理的属性,比如定义日志的输出格式

    <property name="pattern" value="[%-5level] == [%thread]== %d{yyyy-MM-dd HH:mm:ss.SSS} == %c == %M  %m%n{50}"/>

1、控制台输出
定义一个appender标签,类型为ConsoleAppender,然后定义日志输出的格式就行了

<configuration>
    <!--配置集中管理的属性-->
    <!--
    日志输出格式:
        %-5level 日志级别
        %d{yyyy-MM-dd HH:mm:ss.SSS} 日期
        %c 类的完整名称
        %M 方法名method
        %L 行号
        %thread 线程名称
        %m或者%msg 为信息
        %n 换行
    -->
    <property name="pattern" value="[%-5level] == [%thread]== %d{yyyy-MM-dd HH:mm:ss.SSS} == %c == %M  %m%n{50}"/>

    <!--  控制台输出  -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--   控制输出流对象   默认System.out 可以通过<target></target> 修改其他如System.err -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern> ${pattern}</pattern>
        </encoder>
    </appender>

    <!--
        <loger>仅有一个name属性,一个可选的level和一个可选的addtivity属性
        用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。
        
        name:
        用来指定受此logger约束的某一个包或者具体的某一个类。
        level:
        用来设置打印级别,大小写无关:TRACE,DEBUG,INFO,WARN,ERROR,ALL和 oFF,如果未设置此属性,那么当前logger将会继承上级的级别。
        additivity :
        是否向上级logger传递打印信息。默认是true,
        <logger>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger

        root也是<logger>元素,但是它是根logger。默认debug
        level:用来设置打印级别,大小写无关:TRACE,DEBUG,INFO,WARN,ERROR,ALL和OFF,<root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger,

     -->
    <root level="INFO">
        <appender-ref ref="console"/>
    </root>

</configuration>

2、输出日志到文件
定义appender标签类型为FileAppender,使用file标签指定文件的输出路径

<configuration>

    <property name="pattern" value="[%-5level] == [%thread]== %d{yyyy-MM-dd HH:mm:ss.SSS} == %c == %M  %m%n{50}"/>

    <!--  定义日志文件保存的路径  -->
    <property name="log_path" value="./logs"/>

    <!--  控制台输出  -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--   控制输出流对象   默认System.out 可以通过<target>System.err</target> 修改 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern> ${pattern}</pattern>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.FileAppender">
        <file>${log_path}/logback.log</file>
        <encoder>
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>

</configuration>

3、日志的拆分归档压缩
定义appender标签类型为RollingFileAppender,使用rollingPolicy 指定拆分的策略

<configuration>

    <property name="pattern" value="[%-5level] == [%thread]== %d{yyyy-MM-dd HH:mm:ss.SSS} == %c == %M  %m%n{50}"/>

    <!--  定义日志文件保存的路径  -->
    <property name="log_path" value="./logs"/>

    <!--  控制台输出  -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--   控制输出流对象   默认System.out 可以通过<target>System.err</target> 修改 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern> ${pattern}</pattern>
        </encoder>
    </appender>

    <!--  日志拆分和归档压缩  -->
    <appender name="rollFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--    指定拆分的规则    -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--     按照时间格式输出的文件名       -->
            <fileNamePattern>${log_path}/%d{yyy-MM-dd}-roll_logback%i.log</fileNamePattern>
            <!--保存为压缩格式-->
            <!--<fileNamePattern>${log_path}/%d{yyy-MM-dd}-roll_logback%i.log.gz</fileNamePattern>-->
            
            <!--将大于10MB的日志文件拆分  %i就是用来区分拆分的日志文件的-->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>


    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="rollFile"/>
    </root>

</configuration>

给appender指定过滤器,实现细粒度的筛选

    <!--  日志拆分和归档压缩  -->
    <appender name="rollFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--    指定拆分的规则    -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--     按照时间隔压缩格式声明拆分的文件名       -->
            <fileNamePattern>${log_path}/%d{yyy-mm-dd}-roll_logback%i.log</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>

        <encoder>
            <pattern>${pattern}</pattern>
        </encoder>

        <!--   日志级别过滤器     -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!--日志过滤规则-->
            <level>ERROR</level>
            <!--拦截ERROR日志-->
            <onMatch>ACCEPT</onMatch>
            <!--其他级别日志放行-->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

异步记录日志,提高性能

    <!--  异步日志  -->
    <appender name="async" class="ch.qos.logback.classic.AsyncAppender">
        <!--    指定一个具体的appender    -->
        <appender-ref ref="rollFile"/>
    </appender>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值