日志打印的学习之log4j2(二)进阶案例
日志级别简述:
| trace | 追踪,就是程序推进一下,可以写个trace输出 |
| debug | 调试,一般作为最低级别,trace基本不用。 |
| info | 输出重要的信息,使用较多 |
| warn | 警告,有些信息不是错误信息,但也要给程序员一些提示。 |
| error | 错误信息。用的也很多。 |
| fatal | 致命错误 |
日志输出形式
| console | 输出到控制台 |
| file | 输出到文件 |
日志配置的三大元素
| configuration | 根节点 |
| appender | 附加器,用与声明日志的打印方式,一般是Console,File,RollingFile |
| loggers | 引用附加器,声明调用附加器的点,root节点是必须配置的,代表全局的日志打印配置,logger代表局部自定义的日志打印配置 |
日志配置的具体属性配置:
<?xml version="1.0" encoding="UTF-8"?>
<!--根节点Configuration两个属性:status:用来指定log4j本身的打印日志的级别 monitorinterval:用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s-->
<configuration status="info" monitorinterval="5" ><!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --><!-- 自定义变量--><properties><property name="logPath" value="D:/log"/></properties><!--附加器节点 Appenders节点 : 常见的有三种子节点:Console、RollingFile、File; .--><appenders> <!--Console节点用来定义输出日志到控制台的Appender--><!--name:指定Appender的名字.--><!--target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT.--><Console name="Console" target="SYSTEM_OUT"><!--输出格式--><!--SimpleLayout 以简单的形式显示--><!--HTMLLayout 以HTML表格显示--><!--PatternLayout 自定义形式显示 不设置默认为:%m%n--><!-- %d{HH:mm:ss.SSS} 表示输出到毫秒的时间--><!-- %t 输出当前线程名称--><!-- %-5level 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0--><!-- %logger 输出logger名称--><!-- %msg 日志文本--><!-- %n 换行--><!-- %F 输出所在的类文件名,如Log4j2Test.java--><!-- %L 输出行号--><!-- %M 输出所在方法名--><!-- %l 输出语句所在的行数, 包括类名、方法名、文件名、行数--><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console><!--File节点用来定义输出到指定位置的文件的Appender--><!--name:指定Appender的名字.--><!--fileName:指定输出日志的目的文件带全路径的文件名.--><file name="file" fileName="${logPath}/fileLog/myFile.log"><!--PatternLayout 自定义形式显示 不设置默认为:%m%n--><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></file><!--RollingFile节点用来定义超过指定条件自动删除旧的创建新的Appender--><!--name:指定Appender的名字.--><!--fileName:指定输出日志的目的文件带全路径的文件名.--><!--filePattern : 指定当发生Rolling时,文件的转移和重命名规则.--><RollingFile name="rollingFile" fileName="${logPath}/rollingFileLog/rollingFile.log" filepattern="${logPath}/rollingFileLog/rollingFile-%d{yyyy-MM-dd}_%i.log.gz"><!--PatternLayout 自定义形式显示 不设置默认为:%m%n--><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/><!--Policies:指定滚动日志的策略,就是什么时候进行新建日志文件输出日志.--><Policies ><!--TimeBasedTriggeringPolicy:Policies子节点,基于时间的滚动策略,nterval属性用来指定多久滚动一次,默认是1 hour。modulate=true用来调整时间:以凌晨为零点为基准线,interval是6,那么第一次滚动是在 0+6点 第二次就是 0+6+6=12点 --><TimeBasedTriggeringPolicy interval="6"/><!--SizeBasedTriggeringPolicy:Policies子节点,基于指定文件大小的滚动策略,size属性用来定义每个日志文件的大小.--><SizeBasedTriggeringPolicy size="10MB"/><!--DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性),不设置则默认为最多同一文件夹下7个文件开始覆盖--><DefaultRolloverStrategy max="5"/></Policies></RollingFile></appenders><!--在loggers中引用appender附加器 Root节点用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出--><loggers><!--Logger节点用来单独指定日志的形式,name:用来指定该Logger所适用的类或者类所在的包全路径,继承自Root节点。--><logger name="com.example" level="info" additivity="false"><AppenderRef ref="Console"/></logger><!--若是additivity设为false,则只会在自己的appender里输出,而不会在 父Logger(一般是指root节点) 的appender里输出。--><Logger name="org.springframework" level="info" additivity="false"><AppenderRef ref="Console"/></Logger><!--根节点附加器,全局--><root level="info"> <!-- AppenderRef子节点,用来指定该日志输出到哪个Appender.--><appender-ref ref="Console"/><appender-ref ref="file"/><appender-ref ref="rollingFile"/></root></loggers>
</configuration>
相关文章:
日志打印的学习之log4j2(二)进阶案例
日志级别简述: trace追踪,就是程序推进一下,可以写个trace输出debug调试,一般作为最低级别,trace基本不用。info输出重要的信息,使用较多warn警告,有些信息不是错误信息,但也要给程…...
c语言实现2048小游戏
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h>int best 0 ;// 定义2048游戏的结构体 typedef struct { int martix[16]; // 当前4*4矩阵的数字 int martixPrior[16]; // 上一步的4*4矩阵的数字 int emptyIndex[16…...
159 Linux C++ 通讯架构实战14,epoll 函数代码实战
ngx_epoll_init函数的调用 //(3.2)ngx_epoll_init函数的调用(要在子进程中执行) //四章,四节 project1.cpp:nginx中创建worker子进程; //nginx中创建worker子进程 //官方nginx ,一个…...
【鹅厂摸鱼日记(一)】(工作篇)认识八大技术架构
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:重生之我在鹅厂摸鱼⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习更多知识 🔝🔝 认识八大架构 1. 前言2. 架构简介&…...
CA根证书——https安全保障的基石
HTTPS通信中,服务器端使用数字证书来证明自己的身份。客户端需要验证服务器发送的证书的真实性。这就需要一个可信的第三方机构,即CA,来颁发和管理证书。CA根证书是证书颁发机构层次结构的顶级证书,客户端信任的所有证书都可以追溯…...
Spark-Scala语言实战(10)
在之前的文章中,我们学习了如何在spark中使用RDD的filter,distinct,intersection三种方法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-…...
【C++庖丁解牛】高阶数据结构---红黑树详解(万字超详细全面介绍红黑树)
🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 前言1.红黑树的概念2.红黑…...
汽车网络安全管理
汽车网络安全管理 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,…...
文本自动粘贴编辑器:支持自动粘贴并筛选手机号码,让信息处理更轻松
在信息时代的浪潮中,文本处理已成为我们日常工作与生活的重要组成部分。无论是商务沟通、社交互动还是个人事务处理,手机号码的筛选与粘贴都显得尤为关键。然而,传统的文本处理方式效率低下、易出错,已无法满足现代人的高效需求。…...
Linux云计算之网络基础9——园区网络架构项目
要求构建大型园区网络架构,方案如下: 园区A 园区c 公司B 要求: 1、A公司园区网络 一台汇聚层三层交换机,两台接入层二层交换机。 出口有一台路由器。 2、A园区有五台服务器。 分别为两台 WEB 服务器,…...
Java 中的 List 集合
文章目录 添加元素获取元素检查元素删除元素修改元素获取列表大小检查列表是否为空清空列表查找元素索引获取列表的子列表 List 是 Java 集合框架中的一个接口,它表示一个有序的集合(序列),允许存储重复的元素。List 接口提供了许…...
数据库之DDL操作(数据库,表,字段)
Data Definition Language,数据库定义语言,用来定义数据库对象(数据库,表,字段) 1.数据库操作 1.1查询所有数据库 show databases; 1.2查询当前数据库 show databases(); 1.3创建数据库 create da…...
5.3.1 配置交换机 SSH 管理和端口安全
5.3.1 实验1:配置交换机基本安全和 SSH管理 1、实验目的 通过本实验可以掌握: 交换机基本安全配置。SSH 的工作原理和 SSH服务端和客户端的配置。 2、实验拓扑 交换机基本安全和 SSH管理实验拓扑如图所示。 交换机基本安全和 SSH管理实验拓扑 3、实验步骤 &a…...
Django--数据库连接
数据库配置 打开mysite/settings.py配置文件,这是整个Django项目的设置中心。Django默认使用SQLite3数据库,因为Python原生支持SQLite3数据库,所以你无须安装任何程序,就可以直接使用它。 下面是默认的数据库配置: …...
CKA 基础操作教程(二)
Kubernetes Deployment 理论学习 Kubernetes Deployment (部署)是一种 Kubernetes 资源对象,用于定义和管理容器化应用程序的部署和更新。Deployment 提供了一种声明性的方式来定义应用程序的期望状态,并负责确保所需数量的 Pod…...
【SQLServer】快速查看SQL Server中所有数据库中所有表的行数
1.查看某个数据库中每个表的行数 SELECT @@servername as servername, db_name() as databasename, s.name AS schemaname, t.name AS tablename,p.rows AS rowcounts,SUM(a...
Node.js------Express
◆ 能够使用 express.static( ) 快速托管静态资源◆ 能够使用 express 路由精简项目结构◆ 能够使用常见的 express 中间件◆ 能够使用 express 创建API接口◆ 能够在 express 中启用cors跨域资源共享 一.初识Express 1.Express 简介 官方给出的概念:Express 是基…...
CSS - 你实现过0.5px的线吗
难度级别:中级及以上 提问概率:75% 我们知道在网页显示或是网页打印中,像素已经是最小单位了,但在很多时候,即便是最小的1像素,精度却不足以呈现所需的线条精度和细节。因此,为了在网页显示和网页打印中呈现更加细致的线条,为了在视觉…...
hbuilderX创建的uniapp项目转移到vscode
场景:一直使用hbuilderX开发的朋友想转移到vscode获取更好的TypeScript支持,所以想把整个项目目录拖到vscode进行开发,但发现运行不了,提示没有package.json等,并且不能执行pnpm命令 首先,我们先来看一下h…...
JavaScript 事件流
JavaScript与HTML之间的交互是通过事件实现的,而用户与浏览器页面的互动也是通过事件来实现的事件就是文档或浏览器窗口中发生的一些特定的交互瞬间,所以分为两种事件,一是发生在 浏览器对象(BOM)上的事件,…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...
