log4j2日志配置颜色
一、需求说明
相关环境说明: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日志配置颜色相关推荐
- Logback 为日志配置颜色搭配(彩色搭配日志-搭配方案)
Logback 为日志配置颜色搭配(彩色搭配日志-搭配方案) 截图: 配置方法: (1)大家都知道 appender > encoder > pattern 是格式化日志输出,这里也是可以 ...
- log4j2日志配置不生效
问题描述 设置log4j2的配置文件,为什么不生效呢? 先上配置 Logger performanceLogger = LoggerFactory.getLogger("PERFORMANC ...
- log4j2 日志配置
log4j2.properties 配置 由于最近有一些特殊的需求:异常日志邮件异步发送配置 等等需求.原有的简单配置不能满足现有需求,特做此笔记,留作备忘也同时希望帮助一部分人 如有错误欢迎留言指正 ...
- log4j2日志配置
背景 log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量.可配置的审计型日志.基于插件架构的各种灵活配置等. 官方 ...
- logback为日志配置颜色
<!-- 定义变量:日志输出格式 --> <property name="CONSOLE_LOG_PATTERN"value="%date{yyyy-M ...
- Spring Boot + Log4j2 日志框架配置 (Maven)
参考Spring Boot官方文档 日志部分 Spring Boot默认情况下,当使用"Starters" 使用Logback输出日志 , 还包括适当的Logback路由, 确保其 ...
- springboot定时删除log4j_SpringBoot整合log4j2进行日志配置及防坑指南
1.Log4j2优点 具体优点可以参考官方文档:https://logging.apache.org/log4j/2.x/ 我这边只简单说一下: 相比与其他的日志系统,log4j2丢数据的情况少:在多 ...
- Log4j 日志配置邮件实战
followtry 2017-05-01 23:40 目的 对于线上系统,必须要有系统的操作日志记录,以便于对系统处理中出现的问题进行跟踪,更重要的是对于系统错误信息和出错原因,系统能够及时主动的将错 ...
- 【Spring】SpringBoot 配置 log4j2 日志
1. 概述 官方参考文档:Log4j Apache Log4j2 是对原先的 Log4j 项目的升级版本,参考了 logback 的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升. 异常 ...
- springmvc使用log4j2的配置,以及解决controller日志只有控制台打印日志,不生成本项目文件夹下
文章目录 1.引包 2. log4j2.xml的配置 3.配置文件中的一些说明 springmvc使用log4j2的配置,以及只有控制台打印日志,不生成文件的解决方式,mvc使用log4j2时会出现在 ...
最新文章
- 当网站遇到黑链时该如何进行处理?
- 信息系统项目管理师:论项目的质量管理
- centos7安装minikube
- linux centos 分区,linux centos 分区
- ssl初一组周六模拟赛【2018.4.21】
- 算法提高 邮票面值设计 搜索 动态规划
- NOTEBOOK随笔
- 本科阶段计算机专业的科学体系,【学习方法】一位大三本科生的计算机科学与技术学习反思录...
- 设置DBGridEH自适应列宽的最好方法
- MySQL Workbench 导入导出乱码解决方法
- CentOS 6.8 Bonding技术实现和网卡功能配置基础
- 10.5~10.6复习与预习的进行
- Mybatis-学习笔记(10)调用存储过程、存储函数
- [Mac]macOS Mojave 10.14.3安装Java
- java-练习题-黄金分割点
- DAP数据加工流程梳理
- 2017中国开发者调查报告-云栖社区
- java写足球游戏_月光软件站 - 编程文档 - Java - 足球战术之flyweight篇
- nacos服务注册不上
- 本地项目及依赖上传私服nexus