log4j2.xml配置文件详解_log4j配置日志文件目录

log4j2.xml配置文件详解_log4j配置日志文件目录log4j.xml配置文件详解一log4j.xml配置<?xmlversion=”1.0″encoding=”UTF-8″?><!DOCTYPElog4j:configurationSYSTEM”log4j.dtd”><log4j:configuration><!–将日志信息输出到控制台–>&lt…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

log4j.xml配置文件详解

一 log4j.xml 配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration>

    <!-- 将日志信息输出到控制台 -->
    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
        <!-- 设置日志输出的样式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 设置日志输出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
        <!--过滤器设置输出的级别-->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!-- 设置日志输出的最小级别 -->
            <param name="levelMin" value="WARN" />
            <!-- 设置日志输出的最大级别 -->
            <param name="levelMax" value="ERROR" />
            <!-- 设置日志输出的xxx,默认是false -->
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <!-- 将日志信息输出到文件,但是当文件的大小达到某个阈值的时候,日志文件会自动回滚 -->
    <appender name="RollingFileAppender" class="org.apache.log4j.RollingFileAppender">
        <!-- 设置日志信息输出文件全路径名 -->
        <param name="File" value="D:/log4j/RollingFileAppender.log" />
        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
        <param name="Append" value="true" />
        <!-- 设置保存备份回滚日志的最大个数 -->
        <param name="MaxBackupIndex" value="10" />
        <!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB -->
        <param name="MaxFileSize" value="10KB" />
        <!-- 设置日志输出的样式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 设置日志输出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
    </appender>

    <!-- 将日志信息输出到文件,可以配置多久产生一个新的日志信息文件 -->
    <appender name="DailyRollingFileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 设置日志信息输出文件全路径名 -->
        <param name="File" value="D:/log4j/DailyRollingFileAppender.log" />
        <!-- 设置日志每分钟回滚一次,即产生一个新的日志文件 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" />
        <!-- 设置日志输出的样式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 设置日志输出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
    </appender>

二 配置的其他说明

(1). 输出方式appender一般有5种:

         org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志) 
         org.apache.log4j.ConsoleAppender (控制台)  
         org.apache.log4j.FileAppender (文件) 
         org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件) 
         org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) 

(2). 日记记录的优先级priority,优先级由高到低分为

  OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。 
  Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。 

(3). 格式说明layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):

   			%c      输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName) 
            %d       输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss} 
            %l        输出日志事件发生位置,包括类目名、发生线程,在代码中的行数 
            %n       换行符 
            %m      输出代码指定信息,如info(“message”),输出message 
            %p       输出优先级,即 FATAL ,ERROR 等 
            %r        输出从启动到显示该log信息所耗费的毫秒数 
            %t        输出产生该日志事件的线程名

三 配置全解

xml declaration and DTD
xml配置文件的头部包括两个部分:xml声明和DTD声明。头部的格式如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
          
 


log4j:configuration (root element)
 

xmlns:log4j [#FIXED attribute] : 定义log4j的名字空间,取定值"http://jakarta.apache.org/log4j/"
appender [* child] : 一个appender子元素定义一个日志输出目的地
logger [* child] : 一个logger子元素定义一个日志写出器
root [? child] : root子元素定义了root logger
 


appender
appender元素定义一个日志输出目的地。

 

name [#REQUIRED attribute] : 定义appender的名字,以便被后文引用
class [#REQUIRED attribute] : 定义appender对象所属的类的全名
param [* child] : 创建appender对象时传递给类构造方法的参数
layout [? child] : 该appender使用的layout对象
 


layout
layout元素定义与某一个appender相联系的日志格式化器。

 

class [#REQUIRED attribute] : 定义layout对象所属的类的全名
param [* child] : 创建layout对象时传递给类构造方法的参数
 


logger
logger元素定义一个日志输出器。

 

name [#REQUIRED attribute] : 定义logger的名字,以便被后文引用
additivity [#ENUM attribute] : 取值为"true"(默认)或者"false",是否继承父logger的属性
level [? child] : 定义该logger的日志级别
appender-ref [* child] : 定义该logger的输出目的地
 


root
root元素定义根日志输出器root logger。

 

param [* child] : 创建root logger对象时传递给类构造方法的参数
level [? child] : 定义root logger的日志级别
appender-ref [* child] : 定义root logger的输出目的地
 


level
level元素定义logger对象的日志级别。

 

class [#IMPLIED attribute] : 定义level对象所属的类,默认情况下是"org.apache.log4j.Level类
value [#REQUIRED attribute] : 为level对象赋值。可能的取值从小到大依次为"all"、"debug"、"info"、"warn"、"error"、"fatal"和"off"。当值为"off"时表示没有任何日志信息被输出
param [* child] : 创建level对象时传递给类构造方法的参数
 


appender-ref
appender-ref元素引用一个appender元素的名字,为logger对象增加一个appender。

 

ref [#REQUIRED attribute] : 一个appender元素的名字的引用
appender-ref元素没有子元素
 

Param

param元素在创建对象时为类的构造方法提供参数。它可以成为appender、layout、filter、errorHandler、level、categoryFactory和root等元素的子元素。

 

name and value [#REQUIRED attributes] : 提供参数的一组名值对
param元素没有子元素
在xml文件中配置appender和layout
创建不同的Appender对象或者不同的Layout对象要调用不同的构造方法。可以使用param子元素来设定不同的参数值。

创建ConsoleAppender对象
ConsoleAppender的构造方法不接受其它的参数。

 

... ... ... ...
<appender name="console.log" class="org.apache.log4j.ConsoleAppender">
  <layout ... >
    ... ...
  </layout>
</appender>
... ... ... ...

建FileAppender对象

可以为FileAppender类的构造方法传递两个参数:File表示日志文件名;Append表示如文件已存在,是否把日志追加到文件尾部,可能取值为”true”和”false”(默认)。

<appender name="file.log" class="org.apache.log4j.FileAppender">
  <param name="File" value="/tmp/log.txt" />
  <param name="Append" value="false" />
  <layout ... >
    ... ...
  </layout>
</appender>

建RollingFileAppender对象

除了File和Append以外,还可以为RollingFileAppender类的构造方法传递两个参数:MaxBackupIndex备份日志文件的个数(默认是1个);MaxFileSize表示日志文件允许的最大字节数(默认是10M)。

<appender name="rollingFile.log" class="org.apache.log4j.RollingFileAppender">
  <param name="File" value="/tmp/rollingLog.txt" />
  <param name="Append" value="false" />
  <param name="MaxBackupIndex" value="2" />
  <param name="MaxFileSize" value="1024" />
  <layout ... >
    ... ...
  </layout>
</appender>

创建PatternLayout对象
可以为PatternLayout类的构造方法传递参数ConversionPattern。

<layout class=”org.apache.log4j.PatternLayout>

转自

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187525.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解Linux内核编译配置(menuconfig)、文件系统制作

    详解Linux内核编译配置(menuconfig)、文件系统制作Linux内核编译流程(Menuconfig图形化方式)Menuconfig配置内核原理:在Linux里面我们所看到的menuconfig界面是通过配置内核顶层的Kconfig产生的,而当输入makemenuconfig命令的时候系统会读取Makefile来解析Kconfig。  通常会在Kconfig里面编写以下四项:  1、模块的名字,用module开头;  2、选项,通常设为bool

    2022年4月27日
    37
  • vuex使用步骤_vue3.0教程

    vuex使用步骤_vue3.0教程前言每一个Vuex应用的核心就是store(仓库)。store基本上就是一个容器,它包含着你的应用中大部分的状态(state)。Vuex和单纯的全局对象有以下两点不同:Vuex的状态存

    2022年7月31日
    12
  • About Heartbleed

    About HeartbleedTwoarticlesforheartbleedbuhttp://gizmodo.com/how-heartbleed-works-the-code-behind-the-internets-se-1561341209http://blog.existentialize.com/diagnosis-of-the-openssl-heartbleed-bug.html

    2022年7月25日
    9
  • phpMyAdmin安装教程

    phpMyAdmin安装教程phpmyadmin是一款mysql数据库管理工具,是由php编写的,可以通过互联网控制和操作mysql,通过phpmyadmin可以完全对数据库进行操作,例如建立、复制/删除数据等等。可以管理整个MySQL服务器(需要超级用户),也可以管理单个数据库,为了实现后一种,你将需要合理设置MySQL用户,他只能对允许的数据库进行读/写,那要等到你看过MySQL手册中相关的部分。

    2022年6月1日
    30
  • svn语言安装包过程(如何打开svn)

    一,首先要查看自己电脑安装的svn版本二,找到和版本相同的svn中文安装包,官方地址  https://tortoisesvn.net/downloads.html官方是最新的语言包,楼主的1.10.2的语言包是通过如下链接下载的,不需要花费CSDN币,只需要扫码关注CSDN的一个公众号即可免费下载!!地址:https://download.csdn.net/download/mys…

    2022年4月10日
    186
  • rsyslog日志管理[通俗易懂]

    rsyslog日志管理[通俗易懂]文章目录简介基本维护核心概念实例配置客户端日志服务器输出日志到mysql简介rsyslog是一个快速的日志处理系统,具有卓越的性能和出色的安全性,采用模块化设计,他可以从各种数据源中接收输入、转换数据再将结果输出到指定的位置。他不仅适用于企业,也适用于小型系统。rsyslog是一个c/s架构,既可以作为日志客户端上报日志,也可以作为服务端接收日志rsyslog是模块化设计,因此很多功能需要…

    2022年9月24日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号