SpringBoot使用Log4J2

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions><!-- 去掉springboot默认配置 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <!-- 引入log4j2依赖 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2.2 log4j2配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- 主要配置为error日志与debug日志分别打印文件,errorLog按照分钟存档,debugLog按照日志文件大小存档,最多保存10个。 -->
<!-- 日志打印状态为debug, monitorInterval是用来设置配置文件的动态加载时间的,每30秒配置文件会动态加载一次,修改配置30秒会生效-->
<configuration status="debug" monitorInterval="30">
<Properties>
<!-- baseLogDir变量名,日志存储路径。logPattern日志打印路径 -->
<property name="baseLogDir">./app/log</property>
<!-- 格式化输出:%d格式化日期,%-5level:级别从左显示5个字符宽度,%thread表示线程名,%msg:日志消息,%n是换行符 -->
<property name="logPattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%logger{0}:%line][%thread] %X{logger_id} - [TID: %X{EagleEye-TraceID}] %msg%n</property>
</Properties>
<Appenders>
<!--Appender 1. console输出DEBUG级别以上日志,指定输出格式和过滤器等级为DEBUG -->
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${logPattern}"/>
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
</Console>
<!--Appender 2. INFO日志保存到app.log文件,日志留3天 -->
<RollingFile name="business" fileName="${baseLogDir}/app.log"
filePattern="${baseLogDir}/app.log.%d{yyyy-MM-dd}">
<PatternLayout pattern="${logPattern}"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<DefaultRolloverStrategy>
<Delete basePath="${baseLogDir}" maxDepth="2">
<IfFileName glob="app.log.20*" />
<IfLastModified age="3d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!--Appender 3. DEBUG日志保存到debug.log文件,日志留3天 -->
<RollingFile name="debug" fileName="${baseLogDir}/debug.log"
filePattern="${baseLogDir}/debug.log.%d{yyyy-MM-dd}">
<PatternLayout pattern="${logPattern}"/>
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<DefaultRolloverStrategy>
<Delete basePath="${baseLogDir}" maxDepth="2">
<IfFileName glob="debug.log.20*" />
<IfLastModified age="3d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!--Appender 4. ERROR日志保存到error.log文件,日志留3天 -->
<RollingFile name="error" fileName="${baseLogDir}/error.log"
filePattern="${baseLogDir}/error.log.%d{yyyy-MM-dd}">
<PatternLayout pattern="${logPattern}"/>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<DefaultRolloverStrategy>
<Delete basePath="${baseLogDir}" maxDepth="2">
<IfFileName glob="error.log.20*" />
<IfLastModified age="3d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<AsyncRoot level="info" includeLocation="true">
<AppenderRef ref="console"/>
<AppenderRef ref="business"/>
<AppenderRef ref="debug"/>
<AppenderRef ref="error"/>
</AsyncRoot>
</Loggers>
</configuration>
SpringBoot使用Log4J2的更多相关文章
- Springboot整合log4j2日志全解
目录 常用日志框架 日志门面slf4j 为什么选用log4j2 整合步骤 引入Jar包 配置文件 配置文件模版 配置参数简介 Log4j2配置详解 简单使用 使用lombok工具简化创建Logger类 ...
- SpringBoot整合log4j2进行日志配置及防坑指南
写在前面 最近项目经理要求将原先项目中的日志配置logBack,修改为log4j2,据说是log4j2性能更优于logback,具体快多少,网上有说快10多倍,看来还是很快的,于是新的一波挑战又开始了 ...
- 第三篇 SpringBoot整合log4j2详解
源代码:https://pan.baidu.com/s/1d1Lwv1gIvVNltIKVWeEseA 提取码:wff0 SpringBoot整合Log4j2步骤: 1.删除spring-boot-s ...
- springboot logback + log4j2日志管理
springboot的web项目中自带了日志组件: 我们看一下,springboot中找到日志组件. <dependency> <groupId>org.springframe ...
- Springboot + SLF4j + Log4j2 打印异常日志时,耗时要5-6秒
1.使用jps -l 查看springboot项目的进程ID 2.使用命令jstack -l 进程ID > log.txt 打印堆栈信息到文件,内容如下: "http-nio-8065 ...
- 十一、springboot 配置log4j2以及打包成zip文件
前言 其实我们前面已经配置了日志,但是最近总感觉日志日志格式看的不舒服,并且每次打包都是一个jar 文件,lib都包含在jar 中,每次做很小的修改都需要重新替换jar文件,jar文件会比较大,传输起 ...
- SpringBoot整合log4j2导入新的依赖出现jar冲突解决
1.问题复现: 之前在SpringBoot中配置整合了log4j2,今天在pom文件中,导入新的依赖(依赖如下)之后, <dependency> <groupId>com.gi ...
- springboot整合log4j2遇到的一个坑
背景 项目中使用springboot,需要用log4j2做日志框架 问题 项目启动报错:Could not initialize Log4J2 logging from classpath:log4j ...
- SpringBoot—整合log4j2入门和log4j2.xml配置详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...
- Springboot整合log4j2【详细步骤】
1.去除logback中的依赖包 <dependency> <groupId>org.springframework.boot</groupId> <arti ...
随机推荐
- The 2023 ICPC Asia Hong Kong Regional Programming Contest
The 2023 ICPC Asia Hong Kong Regional Programming Contest A. TreeScript 给你一个根,让你构造一棵树,每个节点被创造的时候必须知道 ...
- VUE 改成history 模式 刷新404 的问题
vue 路由的URL有两种模式,一种是 hash,一种是history ,history 模式更好看一些. 在使用hisory模式时,由于地址并不是真实存在,那么在刷新的情况下,这个会报404错误. ...
- Epicor ERP成本稽核
很多制造企业存在成本差异过大,公司要求提高成本准确率,以便为产品成本分析提供数据支撑. A. 成本现状:成本差异分析,工时.费率.制造差异等出现各种不同情况,造成差异过大. B. 以下是Epicor的 ...
- kube-apiserver 高可用,keepalived + haproxy
为什么要做高可用 在生产环境中,kubernetes 集群中会多多个 master 节点,每个 master 节点上都会部署 kube-apiserver 服务,实现高可用.但是 client 访问 ...
- C# 获取系统盘符
1.使用.net管理对象(引入System.Management) public static List<string> getDisk() { WqlObjectQuery wmique ...
- 《JavaScript 模式》读书笔记(7)— 设计模式1
这些模式已经出现了相当长的一段时间,并被证明在许多情况下都非常有用.这也是为什么需要自己熟悉并谈论这些模式的原因. 虽然这些设计模式是与语言和实现方式无关的,并且人们已经对此研究了多年,但都主要是从强 ...
- CoFile 企业云盘大焕新啦!
一.域名升级,更好记 俗话说的好,好记性不如字数少 cofile.net 指尖一敲,快乐来到 别拦着我,我就要用 CoFile 企业云盘 二.架构优化,不止更快 底层优化,加载提速,更快响应,加倍安全 ...
- git gitignore文件不生效
配置了 .gitigore 文件不生效,是刚开始将那些过滤的文件加到了版本控制.后续增加的,没有进入到版本控制 解决办法就是从版本控制移除,重新更新下gitignore文件 执行以下命令: 根据情况自 ...
- JWT相关知识点
目录 一.jwt介绍和原理 概念 构成与工作原理 1.header 2.payload 3.signature 本质原理 jwt认证算法:签发与校验 签发:根据登录请求提交来的 账号 + 密码 + 设 ...
- django生命周期流程图与django路由层
目录 一.django请求生命周期流程图 二.django路由层 1.路由匹配 2.转换器 3.正则匹配 不同版本的区别 正则匹配斜杠导致的区别 4.正则匹配的无名有名分组 分组匹配 无名分组 有名分 ...