Log4j.xml配置说明

介绍

Log4j 2 是一款广泛使用的 Java 日志框架,它支持多种日志级别、异步日志、过滤器等功能,并且具有高性能和可扩展性。以下是 Log4j 2 的详细配置说明:

  1. 配置文件名称和存放位置:Log4j 2 的配置文件名可以是任意有效的文件名,但通常以 .xml.json.yaml 结尾。配置文件应该存放在项目的类路径(class path)下,例如 src/main/resources 目录下。

  2. 配置文件格式:Log4j 2 的配置文件可以采用 XML、JSON 或 YAML 格式。每种格式的配置文件都有自己的语法规则,具体可以参考 Log4j 官方文档。

  3. 配置内容:Log4j 2 的配置文件包括以下内容:

    • 配置根节点:XML 格式的配置文件具有一个根元素,例如 Configuration。JSON 和 YAML 格式的配置文件通常以对象形式组织配置项。
    • Appenders 节点:该节点下定义了所有的 Appender(日志输出目标),包括控制台、文件、数据库等。每个 Appender 定义了日志的输出格式、目的地、过滤器等信息。
    • Loggers 节点:该节点下定义了所有的 Logger(日志记录器),包括根 Logger 和自定义 Logger。每个 Logger 定义了日志的输出级别、Appender、过滤器等信息。
    • Properties 节点:该节点下定义了一些属性,用于配置日志输出的格式、目的地等。
    • Filters 节点:该节点下定义了过滤器,用于对日志进行筛选和过滤。例如,可以根据日志级别、消息内容等条件进行过滤。
  4. Appender 配置说明:Appender 是用于定义日志输出目标的元素。以下是几种常见的 Appender 和其配置说明:

    • ConsoleAppender:将日志输出到控制台。可以设置输出格式、目标等。
    • FileAppender:将日志输出到文件。可以设置文件名、文件编码、输出格式等。
    • RollingFileAppender:将日志输出到滚动文件。可以设置文件名、文件编码、最大文件大小、备份文件数量等。
    • AsyncAppender:将日志异步输出。可以设置线程池大小、队列大小等参数。
  5. Logger 配置说明:Logger 是用于定义日志记录器的元素。以下是几个常见的 Logger 和其配置说明:

    • RootLogger:根日志记录器,用于记录所有级别的日志。可以设置输出级别、Appender 等参数。
    • Logger:自定义日志记录器,可以设置输出级别、Appender 等参数。可以通过指定 Logger 的名称来创建多个 Logger。
  6. 属性配置说明:属性是用于配置日志输出的格式、目的地等参数的元素。以下是几个常见的属性和其配置说明:

    • PatternLayout:用于定义日志输出格式的属性。可以设置日期格式、时间格式、日志级别等参数。
    • FileName:用于定义日志文件名的属性。可以设置文件名、文件编码等参数。
    • FilePattern:用于定义滚动文件的滚动规则的属性。可以设置最大文件大小、备份文件数量等参数。
  7. 日志级别设置说明:Log4j 2 支持多种日志级别,包括 OFF、FATAL、ERROR、WARN、INFO、DEBUG 和 ALL。可以通过设置 Logger 的级别来控制不同级别的日志输出。例如,可以将根 Logger 的级别设置为 INFO,则所有级别的日志都会被记录,但只有 INFO 及以上级别的日志才会被输出。

  8. 日志过滤器说明:Log4j 2 支持多种过滤器,包括 deny(拒绝)、accept(接受)和 neutral(中立)等。可以通过设置过滤器的参数来筛选和过滤日志。例如,可以将某个 Appender 的过滤器设置为 deny(ERROR),则该 Appender 只记录 ERROR 及以上级别的日志。

  9. 日志异步输出说明:Log4j 2 支持异步输出日志,可以设置线程池大小、队列大小等参数来实现异步输出。异步输出可以提高系统的性能和响应速度。

  10. 日志自动检测和重新配置说明:Log4j 2 支持自动检测和重新配置日志文件的功能。可以通过设置 monitorInterval 参数来实现自动检测和重新配置功能,该参数表示每隔一定时间检查一次配置文件的修改情况,并重新加载配置文件。

简单示例

log4j2.xml是Log4j 2的配置文件,它采用XML格式进行配置。以下是一个简单的log4j2.xml配置文件示例及其说明:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console></Appenders><Loggers><Root level="debug"><AppenderRef ref="Console"/></Root></Loggers>
</Configuration>

详细说明

  • <?xml version="1.0" encoding="UTF-8"?>:XML文件的声明,指定XML版本和编码方式。
  • <Configuration>:配置文件的根元素。
  • status="WARN":指定log4j本身的打印日志级别为WARN。
  • <Appenders>:定义了所有的Appender(日志输出目标)。
  • <Console>:控制台Appender,将日志输出到控制台。
  • name="Console":Appender的名称,用于在Loggers中引用。
  • target="SYSTEM_OUT":指定日志输出目标为控制台。
  • <PatternLayout>:定义了日志的输出格式。
  • pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n":指定日志的日期格式、时间格式、日志级别、Logger名称和消息格式等。
  • <Loggers>:定义了所有的Logger(日志记录器)。
  • <Root>:根Logger,用于记录所有级别的日志。
  • level="debug":指定日志输出级别为DEBUG。
  • <AppenderRef>:引用名为Console的Appender。

在Log4j 2的log4j2.xml配置文件中,PatternLayout提供了多种输出格式,通过在pattern属性中设置相应的模式字符串来选择所需的格式。以下是一些常见的输出格式:

  1. %d{HH:mm:ss.SSS}: 输出日志事件的日期和时间,格式为小时:分钟:秒.毫秒。
  2. %t: 输出产生该日志事件的线程名。
  3. %-5level: 输出日志级别,并限制最大宽度为5个字符。
  4. %logger{36}: 输出Logger名称,并限制最大宽度为36个字符。
  5. %msg: 输出应用提供的日志消息。
  6. %n: 输出一个换行符。
  7. %r: 输出自应用启动到输出该日志信息所耗费的毫秒数。
  8. %c: 输出所属的类目,通常就是所在类的全名。
  9. %C: 输出所属类的全名,类名较长的场合可以使用该模式。
  10. %M: 输出调用者的名称,即发生日志事件的代码的名称。
  11. %m: 输出应用提供的日志消息。
  12. %F: 输出日志消息发生的所在文件名称。
  13. %L: 输出日志消息发生的行数。
  14. %s: 输出简短的源代码位置信息,通常是类名、方法名和行号。
  15. %S: 输出详细的源代码位置信息,通常是完整的方法名和文件路径。

这些格式可以根据需要进行组合和修改,以满足特定的日志输出需求。在pattern属性中可以设置多个格式,每个格式之间用逗号分隔。

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

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

相关文章

微信小程序:上传图片到别的域名文件下

效果 wxml <!-- 上传照片 --> <view class"addbtn"><view classpic name"fault_photo" wx:for"{{imgs}}" wx:for-item"item" wx:key"*this"><image classweui-uploader_img src"{{item}}"…

Kafka-客户端使用

理解Kafka正确使用方式 Kafka提供了两套客户端API&#xff0c;HighLevel API和LowLevel API。 HighLevel API封装了kafka的运行细节&#xff0c;使用起来比较简单&#xff0c;是企业开发过程中最常用的客户端API。 LowLevel API则需要客户端自己管理Kafka的运行细节&#xf…

使用spring-boot-devtools时可能会引起缓存实体转换异常

多次访问API接口时&#xff0c;会报底层实体转换异常排查&#xff0c; 排查自己写的代码&#xff0c;及使用的框架&#xff0c; 最终发现是引用了 热部署插件引起&#xff0c;关闭了插件无影响&#xff1b; 使用spring-boot-devtools时&#xff0c;需要注意这个问题了。 <…

得帆云为玉柴打造CRM售后服务管理系统,实现服务全过程管理|基于得帆云低代码的CRM案例系列

广西玉柴机器股份有限公司 广西玉柴机器股份有限公司始建于1992年&#xff0c;是国内行业首家赴境外上市的中外合资企业&#xff0c;产品远销亚欧美非等180多个国家和地区。公司总部设在广西玉林市&#xff0c;下辖11家子公司&#xff0c;生产基地布局广西、江苏、安徽、山东等…

交友系统:打造独具魅力的社交平台!APP小程序H5三端源码交付,支持二开!

随着社交媒体的兴起&#xff0c;交友系统成为了现代社会不可或缺的一部分。人们希望通过网络结识新朋友&#xff0c;拓展社交圈&#xff0c;寻找志同道合的伙伴&#xff0c;甚至找到自己的爱情。本文将为您介绍交友系统的定义、功能以及如何打造一个独具魅力的社交平台。 一个成…

类加载机制与反射

类加载机制与反射 一.虚拟机类加载机制 1.虚拟机类加载机制概述 虚拟机把描述类的数据从class文件加载到内存 将类的数据进行校验,转换解析和初始化 形成可以被java虚拟机直接使用的java类型 2.类加载过程 当程序要使用某个类时,如果该类还未被加载到内存中,系统会通过加…

Git 常用命令速查

一、 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态git commit 提交git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释git remote add origin git192.168.1.119:ndshowgit push origin mas…

ogre3d 资料

官网 https://www.ogre3d.org/ 主页 https://wiki.ogre3d.org/Home Manual https://ogrecave.github.io/ogre/api/latest/manual.html#SEC_Contents API https://www.ogre3d.org/docs/api/1.9/ https://ogrecave.github.io/ogre/api/latest/ SDK http://www.ogre3d.org/dow…

centos卸载mysql库全流程

&#xff08;1&#xff09;暂停服务 systemctl stop mysqld &#xff08;2&#xff09;查看所有的安装包&#xff0c;将其卸载 rpm -qa |grep mysql rpm -q ( or --query) options -a 查询所有安装的软件包 &#xff08;3&#xff09;使用yum卸载安装的mysql [rootbo /…

c# 利用ContainsKey方法判断Dictionary中是否包含某个键

.NET Framework : 4.7.2IDE : Visual Studio Community 2022OS : Windows 10 x64typesetting : Markdownblog : niaoge.blog.csdn.net ContainsKey的定义 命名空间: System.Collections.Generic 程序集: System.Collections.dll 原型 public bool ContainsKey (TKey key); 确…

科研论文中PPT图片格式选择与转换:EPS、SVG 和 PDF 的比较

当涉及论文中的图片格式时&#xff0c;导师可能要求使用 EPS 格式的图片。EPS&#xff08;Encapsulated PostScript&#xff09;是一种矢量图格式&#xff0c;它以 PostScript 语言描述图像&#xff0c;能够无损地缩放并保持图像清晰度。与像素图像格式&#xff08;如 PNG 和 J…

Qt搭建MQTT编程环境

QT 部署官方MQTT模块 在Qt Creator中&#xff0c;默认是没有部署Mqtt模块的&#xff0c;在使用QT编程之前&#xff0c;先把mqtt 模块部署到开发环境当中。参考博文&#xff1a;Qt开发技术&#xff1a;mqtt介绍、QtMqtt编译和开发环境搭建_长沙红胖子-CSDN博客 下载 Qt官方在g…

收款码在线生成系统源码/开源layui前端框架/附多套前端UI模板/三合一收款码生成系统源码

源码简介&#xff1a; 收款码在线生成系统源码&#xff0c;它是采用开源layui前端框架&#xff0c;并且它附多套前端UI模板&#xff0c;作为三合一收款码生成系统源码&#xff0c;界面简洁大方。 Layui前端的多合一收款码在线生成系统源码&#xff0c;附带了多套精美的前端UI…

数据库——安全性

智能2112杨阳 一、目的与要求&#xff1a; 1、设计用户子模式 2、根据实际需要创建用户角色及用户&#xff0c;并授权 3、针对不同级别的用户定义不同的视图&#xff0c;以保证系统的安全性 二、内容&#xff1a; 先创建四类用户角色&#xff1a; 管理员角色Cusm、客户角…

spring 笔记二 spring配置数据源和整合测试功能

Spring配置数据源 数据源&#xff08;连接池&#xff09;的作用 • 数据源(连接池)是提高程序性能如出现的 • 事先实例化数据源&#xff0c;初始化部分连接资源 • 使用连接资源时从数据源中获取 • 使用完毕后将连接资源归还给数据源 常见的数据源(连接池)&#xff1a;DBC…

STM32——串口实验(非中断)

需求&#xff1a; 接受串口工具发送的字符串&#xff0c;并将其发送回串口工具。 硬件接线&#xff1a; TX -- A10 RX -- A9 一定要记得交叉接线&#xff01;&#xff01; 串口配置&#xff1a; 1. 选定串口 2. 选择模式 异步通讯 3. 串口配置 4. 使用MicroLIB库 从…

(第27天)Oracle 数据泵转换分区表

在Oracle数据库中,分区表的使用是很常见的,使用数据泵也可以进行普通表到分区表的转换,虽然实际场景应用的不多。 创建测试表 sys@ORADB 2022-10-13 11:54:12> create table lucifer.tabs as select * from dba_objects;Table created.sys

应用服务器:负责处理逻辑的服务器 “ 应用服务器怎么处理逻辑?

应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。 应用服务器的工作过程包括以下步骤&#xff1a; 1、客户端发送请求&#xff1a;当客户端需要访问应用程…

harmonyOS HTTP数据请求能用类

通用类 import http from ohos.net.http;// 调试开关 const Test: boolean true;// API 地址 const Url: string Test ? http://api.林.cn/ : http://api.林.cn/;export function request(api: string, method: string, data: any, token: string ): Promise<any> {…

Linux下的网络服务

一般来说&#xff0c;各种操作系统在网络方面的性能比较是这样的顺序BSD>Linux>Win NT>Win 9X, 由此说来&#xff0c;Linux的网络功能仅次于UNIX&#xff0c;而强于Win NT和其它的视窗系列产品&#xff0c;对于Win2000我还不能评价太多&#xff0c;因为不是很熟。 Lin…