log4j2.xml 疑难解惑

2023-10-21 15:50
文章标签 xml 解惑 疑难 log4j2

本文主要是介绍log4j2.xml 疑难解惑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

①:当log4j程序在项目中未找到相应的配置时,就会启用默认配置

默认配置会把 console类型的appender关联到root logger上面去,默认启用ERROR的level,使用  (%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n) 格式进行日志输出

https://logging.apache.org/log4j/2.x/manual/configuration.html
Log4j will provide a default configuration if it cannot locate a configuration file.
The default configuration, provided in the DefaultConfiguration class, will set up:

A ConsoleAppender attached to the root logger.
A PatternLayout set to the pattern "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" attached to the ConsoleAppender
Note that by default Log4j assigns the root logger to Level.ERROR.


②:loggers里边的root和logger标签相当于父子标签,root负责所有的级别控制,logger通过包名进行级别控制.

 <Loggers><Logger name="com.foo.Bar" level="trace"><AppenderRef ref="Console"/></Logger><Root level="error"><AppenderRef ref="Console"/></Root></Loggers>

可以通过logger修改spring,hibernate等框架自身日志打印级别

<logger name="org.springframework" level="off"></logger>
<logger name="org.hibernate" level="off"></logger>

当logger和root都应用了相同的appender的时候,日志就会打印两次,这时可以在logger上添加属性additivity="false"来禁止这种情况发生,当然最好是logger中不要添加单独的appender.

<Logger name="com.foo.Bar" level="trace" additivity="false"><AppenderRef ref="Console"/>
</Logger>

https://logging.apache.org/log4j/2.x/manual/configuration.html

Notice that the trace messages from com.foo.Bar appear twice. This is because the appender associated with logger com.foo.Bar is first used, which writes the first instance to the Console. Next, the parent of com.foo.Bar, which in this case is the root logger, is referenced. The event is then passed to its appender, which is also writes to the Console, resulting in the second instance. This is known as additivity. While additivity can be quite a convenient feature (as in the first previous example where no appender reference needed to be configured), in many cases this behavior is considered undesirable and so it is possible to disable it by setting the additivity attribute on the logger to false:


③:log4j2.xml中如何配置不同的日志输出到不同日志文件

    这个分为两种,级别控制和包名控制.

    一,级别控制

          通过过ThresholdFilter进行组合过滤, level代表匹配大于等于该级别的日志,onMatch匹配到做什么, onMismatch没有匹配到做什么,三个值,   ACCEPT 接受, DENY 拒绝, NEUTRAL 中立,即向下执行,在有多个过滤器的时候必须完全匹配才行.下面的配置必须是等于info级别的时候才会写入到文件中.

    二,包名控制

        配置单独的logger,指定日志级别,additivity="false"代表这个包下面的日志不会再root logger中再次输出

         


④:log4j2.xml按(天/小时)记录日志

属性解释
interval(integer)该属性是相对 RollingFile.filePattern 中的 %d{yyyy-MM-dd}值,例:
filePattern=”xxx%d{yyyy-MM-dd}xx” interval=”2” 表示将2天一个日志文件;
filePattern=”xxx%d{yyyy-MM-dd-HH}xx” interval=”1”表示一个小时一个日志文件
modulate(boolean)以0点为边界进行偏移计算(是否以0点为参考)


⑤:log4j2指定配置文件位置

官方文档:http://logging.apache.org/log4j/2.x/faq.html#config_location

               http://logging.apache.org/log4j/2.x/manual/webapp.html#ContextParams

  1. :在项目的resource目录下(classpath)添加log4j2.component.properties文件
  2. 在web.xml中配置                                                                                                                                                                      

 

 

这篇关于log4j2.xml 疑难解惑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/255378

相关文章

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

SpringBoot中配置文件pom.xml的使用详解

《SpringBoot中配置文件pom.xml的使用详解》SpringBoot的pom.xml文件是Maven项目的核心配置文件,用于定义项目的依赖、插件、构建配置等信息,下面小编就来和大家详细介绍一... 目录1. 基本结构2. 关键部分详解2.1 <modelVersion>2.2 项目坐标2.3 <p

Java实现XML与JSON的互相转换详解

《Java实现XML与JSON的互相转换详解》这篇文章主要为大家详细介绍了如何使用Java实现XML与JSON的互相转换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. XML转jsON1.1 代码目的1.2 代码实现2. JSON转XML3. JSON转XML并输出成指定的

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用