美文网首页
2021-08-09

2021-08-09

作者: 一个骚骚的码农 | 来源:发表于2021-08-09 14:51 被阅读0次

Logback框架

步骤一:

引入使用logback需要的3个依赖,需要注意使用logback是需要引入slf4j-api的,因为logback是基于slf4j的。

<!--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>

步骤二:

在classpath(或者config)下创建logback.xml文件,并按需要进行相应的配置

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <!-- 【日志级别】trace<debug<info<warn<error 若定义的日志级别为info,则不会打印出 trace和debug的相关日志。-->

    <!-- 定义全局参数常量 -->

    <property name="log.level" value="debug"/>

    <property name="log.maxHistory" value="30"/><!-- 30表示30个 -->

    <!-- 日志的存放位置 -->                    <!--catalina.base表示tomcat的根路径  -->

    <property name="log.filePath" value="${catalina.base}/logs/webapps"/>

    <!-- 日志的展现格式 -->

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

    <!-- 定义appender (日志的输出和存放位置等). -->

    <!-- 控制台设置 -->

    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">

        <encoder>

            <pattern>${log.pattern}</pattern>  <!-- 控制台日志输出格式 -->

        </encoder>

    </appender>

    <!-- DEBUG -->

    <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件会滚动 -->

        <!-- 文件路径 -->

        <file>${log.filePath}/debug.log</file><!-- 当前的日志文件存放路径 -->

        <!-- 日志滚动策略 -->

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <!-- 历史日志文件的存放路径和名称 -->

            <fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz</fileNamePattern>

            <!-- 日志文件最大的保存历史 数量-->

            <maxHistory>${log.maxHistory}</maxHistory>

        </rollingPolicy>

        <encoder>

            <pattern>${log.pattern}</pattern>  <!-- 日志文件中日志的格式 -->

        </encoder>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">

            <level>DEBUG</level>

            <onMatch>ACCEPT</onMatch>  <!-- 用过滤器,只接受DEBUG级别的日志信息,其余全部过滤掉 -->

            <onMismatch>DENY</onMismatch>

        </filter>

    </appender>

    <!-- INFO -->

    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件会滚动 -->

        <!-- 文件路径 -->

        <file>${log.filePath}/info.log</file><!-- 当前的日志文件存放路径 -->

        <!-- 日志滚动策略 -->

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <!-- 历史日志文件的存放路径和名称 -->

            <fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern>

            <!-- 日志文件最大的保存历史 数量-->

            <maxHistory>${log.maxHistory}</maxHistory>

        </rollingPolicy>

        <encoder>

            <pattern>${log.pattern}</pattern>  <!-- 日志文件中日志的格式 -->

        </encoder>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">

            <level>INFO</level>

            <onMatch>ACCEPT</onMatch>  <!-- 用过滤器,只接受INFO级别的日志信息,其余全部过滤掉 -->

            <onMismatch>DENY</onMismatch>

        </filter>

    </appender>

    <!-- ERROR-->

    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件会滚动 -->

        <!-- 文件路径 -->

        <file>${log.filePath}/error.log</file><!-- 当前的日志文件存放路径 -->

        <!-- 日志滚动策略 -->

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- TimeBased默认是一天更新一次 -->

            <!-- 历史日志文件的存放路径和名称 -->

            <fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>

            <!-- 日志文件最大的保存历史 数量-->

            <maxHistory>${log.maxHistory}</maxHistory>

        </rollingPolicy>

        <encoder>

            <pattern>${log.pattern}</pattern>  <!-- 日志文件中日志的格式 -->

        </encoder>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">

            <level>ERROR</level>

            <onMatch>ACCEPT</onMatch>  <!-- 用过滤器,只接受ERROR级别的日志信息,其余全部过滤掉 -->

            <onMismatch>DENY</onMismatch>

        </filter>

    </appender>

    <!-- logger标签用于和appender进行绑定,并告诉logback哪些包(name属性)的日志信息需要记录 -->

    <!--logger将会继承root标签,在加上additivity="true"的属性后 root标签中的level将会被logger的level覆盖-->

    <logger name="com.me" level="${log.level}" additivity="true">

        <!-- level表示只记录哪一个级别以上的日志 -->

        <!-- 与appender进行绑定 -->

        <appender-ref ref="debugAppender"/>

        <appender-ref ref="infoAppender"/>

        <appender-ref ref="errorAppender"/>

    </logger>

    <root level="info">

        <appender-ref ref="consoleAppender"/>

    </root>

</configuration>

注意:若日志路径可配置则如下操作

<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <property name="appName" value="XXX" />
    <property name="module_all" value="all" />
    <property name="info" value="info" />
    <property file="application.properties"/>

    <springProperty scope="context" name="LOG_HOME" source="logback.loghome"/>
    <!-- 标准控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d [%thread] %logger{36} %5level >%msg%n</pattern>
        </encoder>ExecutorService
    </appender>
    <!-- INFO -->
    <appender name="AllMsgFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${appName}.${module_all}.%d{yyyyMMdd}.info.%i.log</fileNamePattern>

相关文章

  • 《an introduction to gcc》阅读笔记

    title: an_introduction_to_gcc.mddate: 2021-08-09 20:42:04...

  • 2021-08-15 思考成长周复盘

    一 时间 2021-08-09 ~ 2021-08-15 二 围绕精力提升所做的事情 五点早起,读书学习 低脂纯素...

  • 日志

    2021-08-09: 1. POJO类中布尔类型的变量,命名时不要加is,否则部分框架解析时会引起序列化错误。(...

  • 最接地气的工作日常

    2021-08-09: POJO类中布尔类型的变量,命名时不要加is,否则部分框架解析时会引起序列化错误。(因为在...

  • 暑假闲记(三)

    父亲的书法___ ( 2021-08-09 ) 一个脑梗患者的打卡练习第二天: 紫气东来 祥云常开 清晨八点...

  • #Dairy278 完成率低下

    2021-08-09 阴 周一 比起上一周虽然作息混乱但是每天还是花一段时间复习相比,这周的学习效率有点低下。而且...

  • 【餐饮100问】70、年轻的员工职业规划?

    D300 2021-08-09 今天去税务局领完发票,去了招聘会。遇到一个腼腆的大男孩,眼睛大大的,却很少说话。 ...

  • 看清楚问题的本质,才能走得更好

    日记893篇 2021-08-09 平静的湖面上,扔一颗石子,会荡起一圈圈的涟漪。做公司,敢于维护公司的利益,学会...

  • 2021-08-09

    故事的开头好像都是十分美好,好像在表达只有极致的高,才有足够痛彻的低。听说在很远的很远地方,发生着很多很多改变着世...

  • 2021-08-09

    京心❤️达三店:何海港 2021年8月8日 落地真经 严格就是爱,放纵既是害 油卡目标:40张、完成12张 正能量...

网友评论

      本文标题:2021-08-09

      本文链接:https://www.haomeiwen.com/subject/cfuzvltx.html