日志打印的学习之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)上的事件,…...
YOLOv8 Detect Head 源码拆解:从张量变形到边界框解码,一步步带你理解Anchor-Free预测
YOLOv8 Detect Head 深度解析:从特征图到预测框的完整实现路径 在计算机视觉领域,目标检测一直是核心任务之一。YOLOv8作为当前最先进的实时检测器,其Detect Head模块的设计尤为精妙。本文将带您深入探索这一模块的内部工作机制,从…...
故障诊断指南:用STFT在5分钟内定位工业设备异常时间点(MATLAB版)
故障诊断实战:STFT在工业设备异常定位中的高效应用(MATLAB实现) 工业设备的异常检测如同医生听诊,需要精准捕捉故障的"心跳节律"。传统方法往往只能告诉我们"设备病了",却难以定位"何时发病…...
华为光猫配置解密工具:技术原理与实战应用指南
华为光猫配置解密工具:技术原理与实战应用指南 【免费下载链接】HuaWei-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/hu/HuaWei-Optical-Network-Terminal-Decoder 华为光猫配置解密工具是一款专为网络运维人员设计的专业工…...
别再乱放菜单了!SolidWorks插件UI设计避坑指南:C#二次开发中13个菜单位置的正确用法
SolidWorks插件UI设计黄金法则:C#二次开发中的13个菜单位置实战解析 当你的SolidWorks插件功能越来越丰富,是否遇到过这样的尴尬:用户反馈"功能藏得太深"、"操作路径太长"?这往往不是功能本身的问题ÿ…...
Magisk Root技术实践指南:从决策评估到风险管控的完整解决方案
Magisk Root技术实践指南:从决策评估到风险管控的完整解决方案 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk 一、决策评估:场景化应用与技术选型 1.1 设备Root需求分析矩阵 在…...
Claude Code安装保姆级教程!超简单上手就会!
Claude Code驾驶手册 文章目录 Claude Code驾驶手册0 前言1 Claude Code基本安装配置1.1 系统配置及安装1.2 启动Claude Code1.3 配置API 0 前言 AI Agent 称为智能体(或人工智能代理),本质是自动执行任务的程序,核心在于让模型不…...
3步实现PDF文献自动化管理:Zotero Reference插件新手入门指南
3步实现PDF文献自动化管理:Zotero Reference插件新手入门指南 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference 一、价值定位:为什么选择Zotero Reference …...
像素幻梦·创意工坊效果展示:从文本描述到可编辑PSD分层像素图的生成能力
像素幻梦创意工坊效果展示:从文本描述到可编辑PSD分层像素图的生成能力 1. 像素艺术的新纪元 在数字艺术创作领域,像素艺术一直保持着独特的魅力。传统的像素画创作需要艺术家逐格绘制,耗时耗力。而如今,像素幻梦创意工坊&#…...
Go网络编程nethttp包解析
Go语言凭借其简洁高效的特性,已成为现代网络编程的热门选择。其中,标准库中的net/http包为开发者提供了强大的HTTP服务端和客户端功能,极大简化了Web开发流程。本文将深入解析net/http包的核心特性,帮助开发者掌握构建高性能Web服…...
14 年 Java 老码农,重启 CSDN:从 2012 到 2026,我的技术成长与重启之路
图:我的 CSDN 主页,2012 年 8 月 13 日注册,2014 年分享的第一篇 SSH 框架相关文章。 14 年过去,从青涩的 Java 工具类到现在的 DevOps 科研 AI,账号尘封多年,今天正式重启。 一、2012–2026:…...
