logback.xml配置文件详解

日志等级:

日志级别从低到高:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
当日志的级别大于或等于设置的日志级别时才会输出。

logback配置核心标签:

<appender></appender>:标签主要负责打印日志,设置日志输出位置,输出格式,日志文件的生成策略等;
<logger></logger>: 标签用来设置某个包或某个指定类的日志打印级别;
<root level=""></root> : 标签只有一个level属性,是logger的上级,<root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个root。

常用的日志追加器:

  • RollingFileAppender:随着日志量的越来越大,或则随着时间的变动,会对文件进行切割。
  • FileAppender:普通文件的日志追加器;
  • ConsoleAppender:控制台的日志输出;
  • AsyncAppender:异步日志追加;

常用的配置标签梳理:

property标签:

<!-- 简单的设置属性名和属性值的对应关系,方便后续引用-->
<!-- (%d表示时间格式)年月日时分秒毫秒+日志级别+线程+tranceId+日志信息+行数+换行-->
<!-- 2023/02/20-14:42:28 TRACE [http-nio-8080-exec-8 ][956f0ce67ecd4d1ea036321d1d7ec785] c.d.c.z.s.c.d.m.B.selectPage 149-->
<property name="log.pattern" value="%d{yyyy/MM/dd-HH:mm:ss} %-5level [%-21thread][%X{traceId}] %logger{36} %line - %msg%n"/>

springProperty标签:

<!-- 也是简单的设置属性名和属性值的对应关系,只不过对应的属性值可以从配置文件中读取 -->
<!-- name代表属性名称, source代表读取配置文件属性名称   defaultValue代表如果没有从配置文件中读取到值的话,就采用默认值填充-->
<springProperty scope="context" name="log.path" source="log.path"
                defaultValue="logs"/>

appender标签:

<!-- ConsoleAppender:把日志打印到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  <!-- encoder 默认配置为PatternLayoutEncoder -->
  <encoder>
    <!-- 输出的日志格式,引用前面property定义的输出格式 -->
    <pattern>${log.pattern}</pattern>
  </encoder>
</appender>


<!-- RollingFileAppender 滚动的打印日志信息 -->
<appender name="error_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <!--通过SizeAndTimeBasedRollingPolicy执行策略,按大小|时间周期将日志文本文件以[日期.i.log]的方式进行存储-->
  <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <!--日志文件名称格式 -->
    <FileNamePattern>${log.path}/error.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
    <!--最长的日志记录周期 -->
    <MaxHistory>60</MaxHistory>
    <!--最大的单日志文件的大小 -->
    <maxFileSize>100MB</maxFileSize>
    <!--日志文件总大小 -->
    <totalSizeCap>20GB</totalSizeCap>
  </rollingPolicy>
  <encoder>
    <!-- 输出的日志格式,引用前面property定义的输出格式 -->
    <pattern>${log.pattern}</pattern>
  </encoder>
  <!--过滤器 将会过滤掉除ERROR级别以外的日志信息-->
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>ERROR</level>
    <!-- onMatch表示匹配大于这个级别的日志  ACCEPT–打印  -->
    <onMatch>ACCEPT</onMatch>
    <!-- onMismatch表示匹配小于于这个级别的日志 DENY– 不打印 -->
    <onMismatch>DENY</onMismatch>
  </filter>
</appender>

logger标签:

<!-- 类路径 日志级别-->
<logger name="org.springframework.web.servlet.DispatcherServlet" level="trace"/>

<!-- mybatis sql 日志    包路径  日志级别-->
<logger name="com.zhangsan.core.mapper" level="trace"/>

root标签:

<!--通过append-ref将appender添加到这个root中,把相应的日志输出 -->
<root level="info">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="info_log"/>
    <appender-ref ref="error_log"/>
</root>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值