Log4j Spring Boot 支持

此模块为 Spring Boot 提供了超出 Spring Boot 本身提供的增强支持。

概述

此模块中的组件需要已创建的 Spring 环境。Spring Boot 应用程序多次初始化日志记录。第一次初始化发生在 Spring 执行任何初始化工作之前,因此不会创建任何环境,并且在此模块中实现的组件不会产生预期的结果。后续的日志记录初始化将具有 Spring 环境。

用法

Spring 查找

Spring 查找允许配置文件从 Log4j 配置文件引用 Spring 配置文件中定义的属性。例如

<property name="applicationName">${spring:spring.application.name}</property>

将 Log4j applicationName 属性设置为 Spring 配置中设置的 spring.application.name 的值。

Spring 属性源

Log4j 在解析其内部使用的属性时使用属性源。此支持允许在 Spring 配置中指定大多数 Log4j 的 系统属性。但是,某些仅在第一次 Log4j 初始化期间引用的属性(例如 Log4j 用于允许选择默认 Log4j 实现的属性)将不可用。

Spring 配置文件仲裁器

Log4j 2.15.0 中新增了“仲裁器”,它们是条件,可以导致 Log4j 配置的一部分被包含或排除。log4j-spring-boot 提供了一个仲裁器,允许使用 Spring 配置文件值来实现此目的。以下是一个示例

<Configuration name="ConfigTest" status="ERROR" monitorInterval="5">
  <Appenders>

    <SpringProfile name="dev | staging">
      <Console name="Out">
        <PatternLayout pattern="%m%n"/>
      </Console>
    </SpringProfile>
    <SpringProfile name="prod">
      <List name="Out">
      </List>
    </SpringProfile>

  </Appenders>
  <Loggers>
    <Logger name="org.apache.test" level="trace" additivity="false">
      <AppenderRef ref="Out"/>
    </Logger>
    <Root level="error">
      <AppenderRef ref="Out"/>
    </Root>
  </Loggers>
</Configuration>

要求

Log4j 2 Spring Cloud 配置集成依赖于 Log4j 2 API、Log4j 2 Core 和 Spring Boot 版本 2.0.3.RELEASE 或 2.1.1.RELEASE 或更高版本,它要么发布系列。有关更多信息,请参阅 运行时依赖项