logback配置

需要的包

<!--logback-->
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-core</artifactId>
  <version>1.2.3</version>
</dependency>
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.2.3</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.25</version>
</dependency>

配置文件src下面创建logback.xml

注意,一个appender就是一个配置,我用了控制台输出和文件保存压缩的两个appender,并且设置了这两个的打印级别

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">

<!--配置集中管理属性,可以根据name直接使用value值
%5: level
%d{yyyy-MM-dd}: 时间格式
%c 完整类名
%M 为method
%L 行号
%thread 线程名称
%m或者%msg 具体信息
%n 换行-->
<property name="pattern" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n"></property>


    <!--控制台日志输出appender-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <!--控制输出流对象.默认system.out  可以改成红色 system.err-->
    <!--<target>System.err</target>-->
    <target>System.out</target>
    <!--日志消息格式-->
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <pattern>${pattern}</pattern>
    </encoder>
</appender>


    <!--日志文件输出-->
    <appender name="file" class="ch.qos.logback.core.FileAppender">
        <!--日志文件保存路径-->
        <file>D:/logs/kanghubao.log</file>
        <!--日志消息格式-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>


    <!--html 格式的文件输出-->
    <appender name="htmlFile" class="ch.qos.logback.core.FileAppender">
        <!--日志文件保存路径-->
        <file>D:/logs/kanghubao.html</file>
        <!--配置html格式配置-->
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="ch.qos.logback.classic.html.HTMLLayout">
                <pattern>%-5level%d{yyyy-MM-dd HH:mm:ss.SSS}%c%M%L%thread%m}</pattern>
            </layout>
        </encoder>
    </appender>


    <!--日志拆分压缩-->
    <appender name="rollFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--日志文件保存路径-->
        <file>D:/logs/roll_kanghubao.log</file>
        <!--日志消息格式-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
        <!--指定拆分规则-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--按照时间和压缩格式声明拆分的文件名-->
            <fileNamePattern>D:/logs/rolling.%d{yyyy-MM-dd-HH-mm}.log%i.gz</fileNamePattern>
            <!--按照文件大小拆分-->
            <maxFileSize>1MB</maxFileSize>
        </rollingPolicy>
        <!--日志级别过滤器-->
        <!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->
            <!--&lt;!&ndash;日志过滤规则&ndash;&gt;-->
            <!--<level>DEBUG</level>-->
            <!--&lt;!&ndash;如果是DEBUG级别就剔除&ndash;&gt;-->
            <!--<onMatch>DENY</onMatch>-->
            <!--<onMismatch>ACCEPT</onMismatch>-->
        <!--</filter>-->
        
        <!--第二种过滤器,过滤掉低于某个级别的日志-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>



    <!--root logger 配置-->
<root level="ALL">
    <!--定义调用哪个appender配置-->
    <appender-ref ref="console" />
    <appender-ref ref="rollFile" />
</root>


</configuration>

优化异步调用日志,在原有基础上添加一个异步appender,并在其中引用rollFile这个appender,其次,在root中调用异步这个appender就可以了

  <!--异步调用appender,再在root中调用async即可异步使用rollFile这个appender-->
    <appender name="async" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="rollFile" />
    </appender>


  <!--root logger 配置-->
<root level="ALL">
    <!--定义调用哪个appender配置-->
    <appender-ref ref="console" />
    <appender-ref ref="async" />
</root>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值