|
|
|
@ -1,33 +1,58 @@
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<!-- 这是整个 logback 配置文件的根节点,所有的日志配置相关内容都在这个节点下进行定义 -->
|
|
|
|
|
<configuration>
|
|
|
|
|
<!-- 定义一个名为 LOG_HOME 的属性,其值为 "/logs/user/",用于后续配置中作为日志文件的存储路径基础部分,
|
|
|
|
|
通过这种属性定义的方式,可以方便地统一修改日志文件的存储位置,提高配置的灵活性 -->
|
|
|
|
|
<property name="LOG_HOME" value="/logs/user/" />
|
|
|
|
|
|
|
|
|
|
<!-- 配置一个名为 Console 的日志输出 Appender,类型为 ch.qos.logback.core.ConsoleAppender,它用于将日志输出到控制台,
|
|
|
|
|
方便在开发调试阶段或者查看实时日志信息时使用 -->
|
|
|
|
|
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
|
|
|
|
|
<!-- 定义编码器(Encoder),用于指定日志输出的格式 -->
|
|
|
|
|
<encoder>
|
|
|
|
|
<!-- 这里配置的日志格式为:时间(精确到小时和分钟)、日志级别(占5个字符宽度且左对齐)、日志记录器名称(最长16个字符)以及日志消息内容,最后换行 -->
|
|
|
|
|
<pattern>%d{H:mm} %-5level [%logger{16}] %msg%n</pattern>
|
|
|
|
|
</encoder>
|
|
|
|
|
</appender>
|
|
|
|
|
|
|
|
|
|
<!-- 配置一个名为 normalLog 的日志输出 Appender,类型为 ch.qos.logback.core.rolling.RollingFileAppender,
|
|
|
|
|
它用于将日志输出到文件,并且支持日志文件的滚动策略(即按照一定规则对日志文件进行切割、备份等操作) -->
|
|
|
|
|
<appender name="normalLog"
|
|
|
|
|
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
|
|
<!-- 配置滚动策略,这里使用的是基于时间的滚动策略(TimeBasedRollingPolicy),按照日期来切割日志文件 -->
|
|
|
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
|
|
<!-- 定义日志文件的命名模式,会在 LOG_HOME 路径下生成形如 web.normal.2024-12-17.log 的文件(以实际日期为准),
|
|
|
|
|
每天会生成一个新的日志文件,方便按天对日志进行管理和查看 -->
|
|
|
|
|
<FileNamePattern>${LOG_HOME}/web.normal.%d{yyyy-MM-dd}.log
|
|
|
|
|
</FileNamePattern>
|
|
|
|
|
<!-- 配置保留的历史日志文件数量,这里设置为最多保留 30 天的日志文件,超过这个数量的旧日志文件会被自动删除,
|
|
|
|
|
避免日志文件过多占用磁盘空间 -->
|
|
|
|
|
<MaxHistory>30</MaxHistory>
|
|
|
|
|
</rollingPolicy>
|
|
|
|
|
<!-- 配置基于文件大小的触发策略(SizeBasedTriggeringPolicy),当单个日志文件大小达到 10MB 时,会触发滚动操作,
|
|
|
|
|
也就是进行日志文件的切割、备份等处理,与基于时间的滚动策略结合使用,从时间和文件大小两个维度来管理日志文件 -->
|
|
|
|
|
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
|
|
|
|
<maxFileSize>10MB</maxFileSize>
|
|
|
|
|
</triggeringPolicy>
|
|
|
|
|
<!-- 定义日志的布局格式,与前面 Console Appender 中的类似,不过这里时间精确到了毫秒,并且包含了线程信息等,
|
|
|
|
|
用于规范日志在文件中的输出格式 -->
|
|
|
|
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
|
|
|
|
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{16} - %msg%n
|
|
|
|
|
</pattern>
|
|
|
|
|
</layout>
|
|
|
|
|
<!-- 配置一个过滤器(LevelFilter),用于根据日志级别来决定是否接受该日志进行输出,
|
|
|
|
|
这里对于 ERROR 级别的日志进行过滤 -->
|
|
|
|
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
|
|
<!-- 指定过滤的日志级别为 ERROR -->
|
|
|
|
|
<level>ERROR</level>
|
|
|
|
|
<!-- 如果日志级别匹配(这里就是 ERROR 级别),则拒绝该日志输出,也就是不会记录到这个 normalLog 对应的日志文件中 -->
|
|
|
|
|
<onMatch>DENY</onMatch>
|
|
|
|
|
<onMismatch>ACCEPT</onMismatch>
|
|
|
|
|
<!-- 如果日志级别不匹配(即不是 ERROR 级别),则接受该日志输出,会正常记录到日志文件中 -->
|
|
|
|
|
<onMismatch>ACCEPT</onMatch>
|
|
|
|
|
</filter>
|
|
|
|
|
</appender>
|
|
|
|
|
|
|
|
|
|
<!-- 配置一个名为 errorLog 的日志输出 Appender,同样是基于滚动文件的方式,结构和前面的 normalLog 类似,但在日志级别过滤方面有所不同 -->
|
|
|
|
|
<appender name="errorLog"
|
|
|
|
|
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
|
@ -44,18 +69,22 @@
|
|
|
|
|
</layout>
|
|
|
|
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
|
|
<level>ERROR</level>
|
|
|
|
|
<!-- 对于 ERROR 级别的日志,这里设置为接受输出,也就是只有 ERROR 级别的日志会记录到这个 errorLog 对应的日志文件中 -->
|
|
|
|
|
<onMatch>ACCEPT</onMatch>
|
|
|
|
|
<onMismatch>DENY</onMismatch>
|
|
|
|
|
</filter>
|
|
|
|
|
</appender>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 配置一个名为 com.oursnail 的日志记录器(Logger),指定其日志级别为 debug,意味着这个记录器会记录 DEBUG 及以上级别的日志信息,
|
|
|
|
|
并且将日志输出到 normalLog 和 errorLog 这两个 Appender 对应的日志文件中,实现了对特定包下日志的分级和分类输出管理 -->
|
|
|
|
|
<logger name="com.oursnail" level="debug" >
|
|
|
|
|
<appender-ref ref="normalLog" />
|
|
|
|
|
<appender-ref ref="errorLog" />
|
|
|
|
|
</logger>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 配置根日志记录器(Root Logger),它是所有日志记录器的默认父级,这里设置其日志级别为 info,
|
|
|
|
|
也就是会记录 INFO 及以上级别的日志信息,并且将日志输出到 Console 这个 Appender 对应的控制台中,
|
|
|
|
|
对整个应用的日志输出做了一个基础的级别和输出目标的配置 -->
|
|
|
|
|
<root level="info">
|
|
|
|
|
<appender-ref ref="Console" />
|
|
|
|
|
</root>
|
|
|
|
|