(logback additivity) logback的addtivity属性定义源码解读
Logback 是一个 Java 领域广泛使用的日志框架,是 log4j 框架的改进版。在 Logback 中,additivity
属性是与日志继承有关的一个重要概念。在 Logger 层次结构中,一个 Logger 可以继承另一个 Logger 的一些属性。如果 additivity
设置为 false
,那么当前 Logger 就不会将自己的日志信息传递给它的父 Logger。默认情况下,additivity
属性是设置为 true
的,这意味着日志信息会沿着 Logger 树向上流传。
解释说明:
当一个日志事件被 Logger 处理时,如果该 Logger 的 additivity
属性设置为 true
,那么这个事件除了会被该 Logger 的 Appender(负责输出日志的组件)处理之外,还会被父 Logger 的 Appender 处理。但是如果设置为 false
,则仅由当前 Logger 的 Appender 处理,父 Logger 的 Appender 不会处理这个事件。
以下是一个基本的配置流程,说明了如何在 Logback 配置文件中设置 additivity
属性,并且提供了相应的解释注释:
- 假定您已经添加了 Logback 的依赖项在您的构建配置中,比如
pom.xml
文件中,如果你正在使用 Maven。 - 创建一个 Logback 的配置文件,通常是
logback.xml
,并放置在src/main/resources
目录下。 - 在
logback.xml
文件中,配置具有additivity
属性的 Logger:
<configuration>
<!-- 定义一个根 Logger -->
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
</root>
<!-- 定义一个具体的子 Logger,关闭 additivity -->
<logger name="com.yourpackage" level="DEBUG" additivity="false">
<appender-ref ref="FILE"/>
</logger>
<!-- 定义 STDOUT Appender 输出到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 定义 FILE Appender 输出到文件 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>myapp.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
</configuration>
解释:
<root>
定义了一个根 Logger,所有的 Logger 都默认继承自它。它的日志级别是DEBUG
,并且它的 Appender 是STDOUT
,意味着所有 DEBUG 或更高级别的日志都会打印到控制台上。<logger>
定义了一个名为com.yourpackage
的具体的 Logger,将会处理这个包下日志事件。它的additivity
被设置为false
,避免日志信息被向上传递到根 Logger,即不会打印到控制台上,而是通过FILE
Appender 被写入到myapp.log
文件中。
请根据自己的实际需要修改 com.yourpackage
、Appender 的类或者其他属性。这是一个基本示例,真实的应用场景可能更加复杂,需要根据具体情况进行配置。
(swagger java) Java使用Swagger接口框架方法详解 使用 Swagger 的基本步骤:添加 Maven 依赖配置 Swagger 和使用注解# 全网首发(图文详解1)
(message.success) vue封装全局弹窗警告组件this.$message.success问题 提取文章标题:Vue中封装全局弹窗警告组件 全网首发(图文详解1)