Spring 整合 Log4j2日志框架

1. Log4j2日志概述

在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。日志记录了系统行为的时间、地点、状态等相关信息,能够帮助我们了解并监控系统状态,在发生错误或者接近某种危险状态时能够及时提醒我们处理,同时在系统产生问题时,能够帮助我们快速定位、诊断并解决问题。

Log4j2 是一个开源的日志记录组件,使用非常广泛,在工程中以易用方便代替了System.out等打印语句,它是JAVA下最流行的日志输入工具。

1.1 Log4j2主要由几个重要的组件构成

(1)日志信息的优先级,从高到低 TRACT<DEBUG<INFO<WARN<ERROR<FATAL

TRACE:追踪,是最低的日志级别,相当于追踪程序的执行

DEBUG:调试,一般在开发中,都将其设置为最低的日志级别

WARN:警告,输出警告的信息

ERROR:输出错误信息

FATAL:严重错误

(2)日志信息的输出目的地,日志信息的输出目的地指定了日志将打印到控制台还是文件中;

(3)日志信息的输出格式,输出格式则控制了日志信息的显示内容。

2. Spring 整合 Log4j2

2.1 引入依赖

       <!-- log4j2 的依赖--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.19.0</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j2-impl</artifactId><version>2.19.0</version></dependency>

2.2 创建log4j2.xml文件

文件名固定为:log4j2.xml,文件必须放在resources下

<?xml version="1.0" encoding="UTF-8"?>
<configuration><loggers><!--level指定日志级别,从低到高的优先级:TRACE < DEBUG < INFO < WARN < ERROR < FATALtrace:追踪,是最低的日志级别,相当于追踪程序的执行debug:调试,一般在开发中,都将其设置为最低的日志级别info:信息,输出重要的信息,使用较多warn:警告,输出警告的信息error:错误,输出错误信息fatal:严重错误--><root level="DEBUG"><appender-ref ref="spring6log"/><appender-ref ref="RollingFile"/><appender-ref ref="log"/></root></loggers><appenders><!--输出日志信息到控制台--><console name="spring6log" target="SYSTEM_OUT"><!--控制日志输出的格式--><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3level %logger{1024} - %msg%n"/></console><!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用--><File name="log" fileName="d:/spring6_log/test.log" append="false"><PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/></File><!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--><RollingFile name="RollingFile" fileName="d:/spring6_log/app.log"filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"><PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/><SizeBasedTriggeringPolicy size="50MB"/><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 --><DefaultRolloverStrategy max="20"/></RollingFile></appenders>
</configuration>

2.3 测试

执行原有程序

2.4 在控制台打印自定义log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/787775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaSE】一维数组和二维数组详解

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 一维数组 基本语法 初始化 遍历和打印 数组是引用型变量 基本类型变量与引用类型变量的区别 null 数组传参和返回 总结 二维数组 基本语法 初始化 遍历和打印 一维数组…

C语言 结构体

目录 1.结构体的声明 1.1结构体是什么&#xff1f; 1.2声明 1.3结构成员的类型 1.4结构体变量的定义和初始化 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;初始化 2.结构体成员的访问 3.结构体传参 4.结语 1.结构体的声明 1.1结构体是什么&#xff1f; 结…

Android Drawable - Shape Drawable使用详解

shape图形 –简单介绍shape图形 –如何画?shape图形 –参数详细解析 shape图形简单介绍 用xml实现一些形状图形, 或则颜色渐变效果, 相比PNG图片, 占用空间更小; 相比自定义View, 实现起来更加简单. 怎么画? 在res/drawable/目录下建一个XML资源文件Shape图片语法相对复杂…

c++如何从txt文件读取/保存数据

1、读取 #include <fstream> #include <iostream> #include <string>CString type_str[20];std::ifstream file("ecat_type.txt"); // 打开文件第一行个数&#xff0c;第二行开始类型if (!file.is_open()) {//打开失败for(int i0;i<17;i){type…

代码随想录Day37

Day 37 贪心算法 Part06 今日任务 738.单调递增的数字968.监控二叉树 代码实现 738.单调递增的数字 做了这么多贪心的题&#xff0c;这是唯一一道自己写出来的&#xff0c;就是思路虽然一开始就对了&#xff0c;感觉没那么难&#xff0c;但是代码还是比较复杂&#xff0c;用…

论文精读--GPT4

现有的所有模型都无法做到在线学习&#xff0c;能力有限&#xff0c;而让大模型拥有一个tools工具库&#xff0c;则可以使大模型变成一个交互式的工具去协调调用API完成任务&#xff0c;同时GPT4还联网了&#xff0c;可以不断地更新自己的知识库 多模态模型&#xff0c;接受文…

单V及多V感知在自动驾驶在恶劣环境条件下的感知提升方案

单V及多V感知在自动驾驶在恶劣环境条件下的感知提升方案 附赠自动驾驶学习资料和量产经验&#xff1a;链接 自动驾驶中的视觉感知是车辆在不同交通条件下安全、可持续地行驶的关键部分。然而&#xff0c;在大雨和雾霾等恶劣天气下&#xff0c;视觉感知性能受到多种降级效应的极…

Pygame基础9-射击

简介 玩家用鼠标控制飞机&#xff08;白色方块&#xff09;移动&#xff0c;按下鼠标后&#xff0c;玩家所在位置出现子弹&#xff0c;子弹匀速向右飞行。 代码 没有什么新的东西&#xff0c;使用两个精灵类表示玩家和子弹。 有一个细节需要注意&#xff0c;当子弹飞出屏幕…

RK3568 学习笔记 : 独立修改与编译 u-boot

前言 开发板&#xff1a;【正点原子】ATomPi-CA1 开发板&#xff0c;配置&#xff1a;RK3568&#xff0c;4GB DDRAM 64GB emmc 开发板资料给了 u-boot 与 Linux kernel 源码&#xff0c;尝试手动编译。 本篇记录 收到编译 RK3568 平台 u-boot 的方法 环境搭建 由于 RK 平台…

椋鸟数据结构笔记#5:树、二叉树基础

文章目录 树树的相关概念树的表示 二叉树基础二叉树分类满二叉树完全二叉树 二叉树的性质二叉树的存储结构顺序存储链式存储 萌新的学习笔记&#xff0c;写错了恳请斧正。 树 树是一种非线性的数据结构&#xff0c;它是由 n 个节点组成的一个具有层次关系的数据集合。其大概结…

安卓手机APP开发的功能之一:通知概述

安卓手机APP开发的功能之一&#xff1a;通知概述 一个通知是一个消息&#xff0c;这是一个安卓显示在你的&#xff21;&#xff30;&#xff30;的界面的外面的消息&#xff0e; 以提醒的方式提供给用户的消息&#xff0c;是和其他人的通信&#xff0c;或者是来自于你的&#…

新手学python还是c?

考虑到个人情况和职业规划是非常重要的。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&#xff0c;我在后台发给你。 Python作为初学者入门语言…

【算法】链表翻转的两种写法

初始化 ListNode listNode5 new ListNode(5, null); ListNode listNode4 new ListNode(4, listNode5); ListNode listNode3 new ListNode(3, listNode4); ListNode listNode2 new ListNode(2, listNode3); ListNode listNode1 new ListNode(1, listNode2); doReverse(lis…

7-294 筛法求素数(埃式筛、欧拉筛)

素数是仅仅能被它本身和1整除的任何整数。筛法求素数是一种查找素数的方法。它的算法如下&#xff1a; 1、创建一个数组&#xff0c;并将所有元素初始化为1&#xff08;真&#xff09;。具有素数下标的数组元素将保持为1&#xff0c;而其它数组元素最终将被设置为0。 2、从数…

基于three-mesh-bvh实现第一人称及第三人称的漫游

基于three-mesh-bvh实现第一人称及第三人称的漫游 简介 这篇文章主要介绍在3d场景中实现第一人称与第三人称切换以及碰撞监测的漫游方案。 人称视角的场景漫游主要需要解决两个问题&#xff0c;人物在场景中的移动和碰撞检测。移动与碰撞功能是所有三维场景首先需要解决的基…

AI心理咨询

idea 真人介入时长&#xff0c;频率&#xff0c; 对受访者的体验变化曲线。 采集真人伴随AI咨询的数据&#xff0c; 研发代替真人插入AI咨询的AI 相关产品 标题AI心理咨询应用】继Woebot之后&#xff0c;国内诞生的“LLMCBT”应用&#xff1a;白小喵~ Woebot 标题AI 心理…

ObjectiveC-03-XCode的使用和基础数据类型

本节做为Objective-C的入门课程&#xff0c;笔者会从零基础开始介绍这种程序设计语言的各个方面。 术语 ObjeC&#xff1a;Objective-C的简称&#xff0c;因为完整的名称过长&#xff0c;后续会经缩写来代替&#xff1b;项目/工程&#xff1a;也称工程&#xff0c;指的是一个A…

【现代控制】倒立摆模型

基础公式 转动惯量&#xff1a; 欧拉拉格朗日等式 倒立摆模型建立 由拉格朗日等式推导出微分方程&#xff1a; 也就是 将zdot移到等式左边&#xff0c;化简得到 展开就是&#xff1a; 系统线性化 法一&#xff1a;雅可比矩阵 法二&#xff1a;小角度假设 化简最终得…

基于8086贪吃蛇游戏系统方恨设计

**单片机设计介绍&#xff0c;基于8086贪吃蛇游戏系统方恨设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于8086的贪吃蛇游戏系统设计是一个结合了微处理器控制、游戏逻辑以及图形显示技术的综合性项目。该系统旨在通过8086微处理器…

C语言中输入函数scanf与gets得区别

1. gets(接收字符串)会将终端接收的 \n 字符转换成 \0 2. gets可以接收 (空格)字符&#xff0c;但scanf不能接收空格字符 3. scanf中除了%c可以接收 (空格)和 \n 字符&#xff0c;其余均无法接收 和 \n 字符 4. 注意&#xff1a;gets不要和scanf混合使用&#xff0c…