首页 > 其他分享 >log4j.xml、log4j2.xml、log4j.properties都是什么?

log4j.xml、log4j2.xml、log4j.properties都是什么?

时间:2022-09-02 15:23:26浏览次数:41  
标签:xml 配置文件 properties 日志 log4j2 log4j

0.背景

项目中用的SpringMVC框架,这里面用的log4j家族的东西作为日志管理,但是发现代码配置里比较混乱,log4j.xml、log4j2.xml、log4j.properties 都有。这篇文章就来简单区分一下这几个文件。

1.log4j.xml

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件。log4j是通过一个.properties的文件作为主配置文件的.

log4j的类图:

  • Logger – 日志写出器,供程序员输出日志信息
  • Appender – 日志目的地,把格式化好的日志信息输出到指定的地方去
    • ConsoleAppender – 目的地为控制台的Appender
    • FileAppender – 目的地为文件的Appender
    • RollingFileAppender – 目的地为大小受限的文件的Appender,文件大小达到指定尺寸时产生一个新的日志文件,文件名称上会自动添加数字序号。
    • DailyRollingFileAppender-每天都产生一个日志文件的Appender
    • WriterAppender-将日志信息以流的格式发送到任意指定的地方的Appender
  • Layout – 日志格式化器,用来把程序员的日志信息格式化成字符串
    • PatternLayout – 用指定的pattern格式化日志的布局
    • HTMLLayout -以HTML表格形式格式化日志布局
    • SimpleLayout-以包含日志信息的级别和信息字符串格式化日志布局
    • TTCCLayout-以包含日志产生的时间、线程、类别等信息的方法格式化日志布局

使用的时候引入一个jar包就可以了。

<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
2.log4j.properties

Log4j支持两种配置文件格式,一种是XML格式的文件,一种是properties(key=value)文件,其中properties格式的配置文件最为常用,其有一个固定的文件名log4j.properties,下面我们介绍使用properties文件做为配置文件的方法:

配置示例:

log4j.rootLogger=INFO, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n

配置根Logger,其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName, …


其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL 或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。

3.log4j2.xml

log4j2是log4j的升级版本,两个是同一个作者,只不过前者更加强大。

log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为”.xml”,”.json”或者”.jsn”。
配置文件的格式:log2j配置文件可以是xml格式的,也可以是json格式的。
配置文件的位置:log4j2默认会在classpath目录下寻找log4j2.xml、log4j.json、log4j.jsn等名称的文件。
系统选择配置文件的优先级(从先到后)如下:
  (1).classpath下的名为log4j2-test.json 或者log4j2-test.jsn的文件.
  (2).classpath下的名为log4j2-test.xml的文件.
  (3).classpath下名为log4j2.json 或者log4j2.jsn的文件.
  (4).classpath下名为log4j2.xml的文件.
  我们一般默认使用log4j2.xml进行命名。

其配置需要类似下面这样:

<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.5</version> </dependency>

最简单的配置可以参考下面代码:

  <?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="error"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>

标签:xml,配置文件,properties,日志,log4j2,log4j
From: https://www.cnblogs.com/longkui-site/p/16650046.html

相关文章

  • 使用dom4j xml解析文件数据
    XML<?xmlversion="1.0"encoding="ISO-8859-1"?><contactList><contactid="1"vip="true"><name>潘金莲</name><gender>女</gender>......
  • Spring装配bean之通过 XML代码装配 bean
      在Spring中,对象无需自己查找和创建与其所关联的其他对象。相反,容易负责把需要相互协作的对象引用赋予各个对象。例如,一个订单管理的组件需要信用卡认证组件,但它不需要......
  • 1.Mybatis-XML模板
    SELECT sr.ROLE_IDASroleId, sr.ROLE_NAMEASroleName, sr.IS_ACTIVEASisActive, sr.REMARKASremark, sr.CREATE_DATETIMEAScreateDatetime, CON......
  • 修改Android apk的二进制文件AndroidManifest.xml,并重新签名打包apk
    最近使用uni-app混合式框架开发一个App,需要把AndroidApp隐藏图标并隐式启动。有三种方案:1.使用uni-app离线打包。2.在不改源码的情况下,只修改apk的二进制文件AndroidM......
  • logback.xml 配置文件
    logback.xml<?xmlversion="1.0"encoding="UTF-8"?><configuration><!--定义日志文件的存储地址勿在LogBack的配置中使用相对路径--><!--<propertynam......
  • log4j处理方式
     ElasticSearchLog4j版本升级方法,涉及到log4j的都适用处理思路1、下载最新版编译好的Log4j的jar包2、解压后,找到如下四个文件,并上传到服务器3、删除服务器上低版......
  • XmlReader & XElement 遍历大文件xml,不使用内存。测试可以读取6G的xml
    [TestMethod]publicvoidTestMethod1(){//try//{//stringresult=newBoDowJonesWatchlistAutoUpdate().......
  • XElement类来读取XML
    <Table><Product><Product_id>1</Product_id><Product_name>Product1</Product_name><Product_p......
  • 项目实用-logback.xml配置-sql和异常在不同的文件中
    <configuration><!--本文主要输出日志为控制台日志,系统日志,sql日志,异常日志--><!--%m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,,--><!--控制台-......
  • XML文件sql转义字符
    使用CDATA区段所有XML文档中的文本均会被解析器解析。只有CDATA区段(CDATAsection)中的文本会被解析器忽略。大于等于<![CDATA[>=]]>小于等于<![CDATA[<=]]>......