log4j2配置springboot控制台日志颜色

本文介绍了如何在使用log4j2时,通过调整Appenders的PatternLayout来改变控制台日志的颜色,使其与SpringBoot风格保持一致,包括配置示例和LOG_PATTERN的详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用log4j2打印日志时,通过设置Appenders中的target可以改变输出控制台日志的颜色

    <Appenders>
        <!--控制台输出 appender-->
        <Console name="RootConsole" target="SYSTEM_OUT">
            <PatternLayout pattern="${ROLLING_FILE_PATTERN}"/>
<!--            <property name="ROLLING_FILE_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} -----> %m%n</property>
        </Console>
    </Appenders>

改变后日志颜色单一,想要与原本springboot的控制台输出日志颜色一致可以使用以下方法:

定义日志输出格式:<PatternLayout pattern="${LOG_PATTERN}"/>

其中LOG_PATTERN的日志格式如下:

  <properties>
        <!--
            集中配置属性进行管理
            使用时通过:${name}获取
        -->
        <property name="LOG_HOME">logs</property>
        <!--常用的日志输出格式,不带方法名-->

        <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
        <!-- %logger{36} 表示 Logger 名字最长36个字符,颜色主要是下面这行配置 -->
        <property name="LOG_PATTERN" value="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx" />
       

    </properties>

在Appenders中更改PatternLayout

  <Appenders>
        <!--控制台输出 appender-->
        <Console name="RootConsole" target="SYSTEM_OUT">
            <PatternLayout pattern="${LOG_PATTERN}"/>
<!--            <PatternLayout pattern="%highlight{%-5level}  %X{requestId}|%date{yyyy-MM-dd HH:mm:ss}|[%t]|%highlight{%l}|%m%n"/>-->
        </Console>
    </Appenders>

这样控制台打印的日志就跟springboot颜色一致了

转载:SpringBoot整合Log4j2外加彩色日志打印**前方高能**_log4j2.xml 输出彩色日志-优快云博客

### 配置 Spring Boot 使用 Log4j2 输出 JSON 格式的日志 为了使 Spring Boot 应用程序能够使用 Log4j2 并输出 JSON 格式的日志,需执行几个关键步骤。 #### 添加依赖项 首先,在 `pom.xml` 文件中添加必要的 Maven 依赖项以支持 Log4j2: ```xml <dependencies> <!-- 排除默认的 spring-boot-starter-logging --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 引入 log4j2 的 starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!-- Jackson-databind 是用于处理 JSON 日志格式的核心库 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> </dependencies> ``` #### 创建 Log4j2 配置文件 接着,在项目的资源目录下创建名为 `log4j2-spring.json` 或者 `log4j2.xml` 的配置文件。这里提供一个基于 JSON 格式的例子: ```json { "configuration": { "status": "WARN", "appenders": { "Console": { "name": "ConsoleAppender", "target": "SYSTEM_OUT", "PatternLayout": { "pattern": "%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n" }, "JsonTemplateLayout": { "eventTemplateUri": "classpath:LogstashJsonEventLayoutV1.json" } } }, "loggers": { "root": { "appender-ref": [ { "ref": "ConsoleAppender", "level": "info" } ] } } } } ``` 此配置指定了控制台作为日志目的地,并设置了特定于应用程序的日志级别和模式布局。值得注意的是,通过指定 `JsonTemplateLayout` 和其对应的模板 URI 来实现 JSON 格式化输出[^1]。 #### 自定义 JSON 模板 (可选) 如果希望进一步自定义 JSON 结构,则可以在 classpath 下放置一个 `.json` 文件,比如命名为 `LogstashJsonEventLayoutV1.json`,并在此文件内定义所需的字段映射关系。 例如,可以包含时间戳、线程名、日志消息等标准属性以及任何业务特有的元数据。 #### 启动类设置 确保在 Spring Boot 主启动类上加入适当注解以便加载外部化的配置属性: ```java @SpringBootApplication @EnableConfigurationProperties public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 完成上述操作之后,当运行该 Spring Boot 应用时将会按照所设定的方式记录带有结构化信息的日志条目到终端或文件系统中去。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值