一、需求说明

相关环境说明:maven 3.5.0,jdk1.8

maven依赖:

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version>
</dependency>
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version>
</dependency>
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.9.1</version>
</dependency>
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.9.1</version>
</dependency>

我现在需要配置控制台打印日志,最终效果如下所示:

这里不需要使用idea的grep console插件,我们来看看怎么配置出上面的效果

比较着急看结果的可以直接看“三、相关代码”部分

二、实现过程

其实最主要的工作就是编写log4j2.xml文件

1. 暂且不管上面的颜色,先看看如何才能打印出以上格式的日志

通过查看官方文档https://logging.apache.org/log4j/2.x/manual/layouts.html,可以知道写成

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF"><appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d %-5level [%t] %c{1.}.%M(%L): %msg%n"/></Console></appenders><loggers><root level="trace"><appender-ref ref="Console"/></root></loggers>
</configuration>

%d表示日期,

%-5level 表示日志级别,另外在显示时占5个字符,不足的地方用空格补齐,

%t 表示线程名

%c{1.} 表示显示调用者的时候,只显示包名最后一截及方法名,前面的几段只取首字母

比如:调用logger.info的方法是com.kittycoder.Log4j2Test.test,只显示成c.k.Log4j2Test.test

%L 表示调用者所在代码的行号

%msg 表示需要打印的日志信息

%n 表示系统换行符

2. 现在来看看怎么把颜色给加上去

看下开头那张图,日志级别那一列颜色各不相同,线程名那一列、调用者那一列颜色都是固定的

先来解决日志级别那一列

看下官方给的例子,

稍微再改改,就成了

%highlight{%-5level}{ERROR=Bright RED, WARN=Bright Yellow, INFO=Bright Green, DEBUG=Bright Cyan, TRACE=Bright White}

然后再来解决线程名那一列、调用者那一列

稍微再改改,就成了

%style{[%t]}{bright,magenta}
%style{%c{1.}.%M(%L)}{cyan}

最终版本的pattern就是:

%d %highlight{%-5level}{ERROR=Bright RED, WARN=Bright Yellow, INFO=Bright Green, DEBUG=Bright Cyan, TRACE=Bright White} %style{[%t]}{bright,magenta} %style{%c{1.}.%M(%L)}{cyan}: %msg%n

我在控制台执行了一下,效果看着也还可以

三、相关代码

log4j2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF"><appenders><Console name="Console" target="SYSTEM_OUT"><!--<PatternLayout pattern="%d %-5level [%t] %c{1.}.%M(%L): %msg%n"/>--><PatternLayout pattern="%d %highlight{%-5level}{ERROR=Bright RED, WARN=Bright Yellow, INFO=Bright Green, DEBUG=Bright Cyan, TRACE=Bright White} %style{[%t]}{bright,magenta} %style{%c{1.}.%M(%L)}{cyan}: %msg%n"/></Console></appenders><loggers><root level="trace"><appender-ref ref="Console"/></root></loggers>
</configuration>

测试代码 Log4j2Test.java

package com.kittycoder;import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/*** Created by shucheng on 2020/9/24 12:33*/
public class Log4j2Test {public Logger logger = LoggerFactory.getLogger(getClass());@Testpublic void test() {logger.error("COLOR ERROR");logger.warn("COLOR WARN");logger.info("COLOR INFO");logger.debug("COLOR DEBUG");logger.trace("COLOR TRACE");}
}

参考链接:https://logging.apache.org/log4j/2.x/manual/layouts.html

log4j2日志配置颜色相关推荐

  1. Logback 为日志配置颜色搭配(彩色搭配日志-搭配方案)

    Logback 为日志配置颜色搭配(彩色搭配日志-搭配方案) 截图: 配置方法: (1)大家都知道 appender > encoder > pattern 是格式化日志输出,这里也是可以 ...

  2. log4j2日志配置不生效

    问题描述 设置log4j2的配置文件,为什么不生效呢? 先上配置 Logger performanceLogger = LoggerFactory.getLogger("PERFORMANC ...

  3. log4j2 日志配置

    log4j2.properties 配置 由于最近有一些特殊的需求:异常日志邮件异步发送配置 等等需求.原有的简单配置不能满足现有需求,特做此笔记,留作备忘也同时希望帮助一部分人 如有错误欢迎留言指正 ...

  4. log4j2日志配置

    背景 log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量.可配置的审计型日志.基于插件架构的各种灵活配置等. 官方 ...

  5. logback为日志配置颜色

    <!-- 定义变量:日志输出格式 --> <property name="CONSOLE_LOG_PATTERN"value="%date{yyyy-M ...

  6. Spring Boot + Log4j2 日志框架配置 (Maven)

    参考Spring Boot官方文档 日志部分 Spring Boot默认情况下,当使用"Starters" 使用Logback输出日志 , 还包括适当的Logback路由, 确保其 ...

  7. springboot定时删除log4j_SpringBoot整合log4j2进行日志配置及防坑指南

    1.Log4j2优点 具体优点可以参考官方文档:https://logging.apache.org/log4j/2.x/ 我这边只简单说一下: 相比与其他的日志系统,log4j2丢数据的情况少:在多 ...

  8. Log4j 日志配置邮件实战

    followtry 2017-05-01 23:40 目的 对于线上系统,必须要有系统的操作日志记录,以便于对系统处理中出现的问题进行跟踪,更重要的是对于系统错误信息和出错原因,系统能够及时主动的将错 ...

  9. 【Spring】SpringBoot 配置 log4j2 日志

    1. 概述 官方参考文档:Log4j Apache Log4j2 是对原先的 Log4j 项目的升级版本,参考了 logback 的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升. 异常 ...

  10. springmvc使用log4j2的配置,以及解决controller日志只有控制台打印日志,不生成本项目文件夹下

    文章目录 1.引包 2. log4j2.xml的配置 3.配置文件中的一些说明 springmvc使用log4j2的配置,以及只有控制台打印日志,不生成文件的解决方式,mvc使用log4j2时会出现在 ...

最新文章

  1. 当网站遇到黑链时该如何进行处理?
  2. 信息系统项目管理师:论项目的质量管理
  3. centos7安装minikube
  4. linux centos 分区,linux centos 分区
  5. ssl初一组周六模拟赛【2018.4.21】
  6. 算法提高 邮票面值设计 搜索 动态规划
  7. NOTEBOOK随笔
  8. 本科阶段计算机专业的科学体系,【学习方法】一位大三本科生的计算机科学与技术学习反思录...
  9. 设置DBGridEH自适应列宽的最好方法
  10. MySQL Workbench 导入导出乱码解决方法
  11. CentOS 6.8 Bonding技术实现和网卡功能配置基础
  12. 10.5~10.6复习与预习的进行
  13. Mybatis-学习笔记(10)调用存储过程、存储函数
  14. [Mac]macOS Mojave 10.14.3安装Java
  15. java-练习题-黄金分割点
  16. DAP数据加工流程梳理
  17. 2017中国开发者调查报告-云栖社区
  18. java写足球游戏_月光软件站 - 编程文档 - Java - 足球战术之flyweight篇
  19. nacos服务注册不上
  20. 本地项目及依赖上传私服nexus

热门文章

  1. 自己制作深度学习数据集教程
  2. 旋转立方体相册HTML+CSS
  3. 用户分层之RFM模型
  4. SMP_WEIBO_2016 微博用户画像 可视化(未完成)
  5. 更换苹果推送服务证书Apple Push Services Certificate
  6. ThoughtWorks数据智能读书雷达
  7. html缩小照片尺寸像素不变,怎么修改照片像素,但又不改变照片大小呢?——解决照片因大小无法上传的方案...
  8. VB中 文本框的ScrollBars属性不管用
  9. 京东、阿里:健康版图再博弈
  10. 考教师资格证需要买书吗?