log4j学习笔记–ConversionPattern参数详解– RollingFileAppender选项

log4j学习笔记–ConversionPattern参数详解– RollingFileAppender选项1、rootLogger与rootCategory的区别rootLogger是新的使用名称,对应Logger类rootCategory是旧的使用名称,对应原来的Category类Logger类是Category类的子类,所以,rootCategory是旧的用法,不推荐使用2、格式参数a)例句:log4j.appender.stdout.layout.Conver

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

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
1、rootLogger与rootCategory的区别

rootLogger是新的使用名称,对应Logger类

rootCategory是旧的使用名称,对应原来的Category类

Logger类是Category类的子类,所以,rootCategory是旧的用法,不推荐使用

2、格式参数

a)例句 : log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n

%m 输出代码中指定的消息

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

%r 输出自应用启动到输出该log信息耗费的毫秒数

%t 输出产生该日志事件的线程名

%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921

%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。相当于%C%M(%F:%L)

%L 只输出在代码中的行数。

%c 输出所属的类目,通常就是所在类的全名。这个类名是你初始化logger的时候传给logger的类名,即category。若你初始化时的语句如下:private final Logger log = Logger.getLogger(LogTest.class);则%c所指示的类名为:LogTest。

%c{n} n表示显示的包路径层数,如%c显示:com.spring.login.test,则%c{1}显示:test。而%c{2}显示:login.test。

%C(c大写) 输出日志所属类目的调用者的全类名。此处输出的是调用logger的那个类的名字,比如你有一个类叫:LogCaller,而你在初始化logger是传给他的参数却是:LogTest.class。那么使用大写的%C后实际打出的类是调用类,即LogCaller。性能较差,不建议使用。

[QC]是log信息的开头,可以为任意字符,一般为项目简称。

b)不常用的几个:

%F 输出日志消息产生时所在的文件名称。性能不好,不建议使用

%M 输出日志消息产生时所在的方法名称。性能不好,不建议使用

%x 输出和当前线程相关联的NDC(nested diagnostic context)环境,用于多客户多线程的应用中

%X 输出和当前线程相关联的MDC(mapped diagnostic context)环境。

c)一些输出格式说明:

可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:

%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。

%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,”-”号指定左对齐。

%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。

%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边将多出的字符截掉。

3、RollingFileAppender选项

Threshold=DEBUG:指定日志消息的输出最低层次。

File=mylog.txt:指定消息输出到mylog.txt文件。

MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。

MaxBackupIndex=2:指定可以产生的滚动文件的最大数。

ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。

Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。

实例:

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = D:/work/test/test.log

log4j.appender.D.DatePattern=’.’yyyy-MM-dd-HH-mm ##设置为每分钟产生一个日志文件

log4j.appender.D.Threshold = info ##设置该日志文件记录的日志级别为info及更高级

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] – [ %p ]  %m%n

在DailyRollingFileAppender中可以指定monthly(每月)、 weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小时)和minutely(每分钟)六个频度,这是通过为 DatePattern选项赋予不同的值来完成的。DatePattern选项的有效值为:

   ‘.’yyyy-MM,对应monthly(每月)

   ‘.’yyyy-ww,对应weekly(每周)

   ‘.’yyyy-MM-dd,对应daily(每天)

   ‘.’yyyy-MM-dd-a,对应half-daily(每半天)

   ‘.’yyyy-MM-dd-HH,对应hourly(每小时)

   ‘.’yyyy-MM-dd-HH-mm,对应minutely(每分钟)

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

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

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


相关推荐

  • ascii码表完整版_ascii码表高清

    ascii码表完整版_ascii码表高清ASCII码表ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0NUL32(space)64@96、1SOH33!65A97a2STX34”66B98b3ETX35#6

    2022年8月4日
    10
  • Maven直接部署Web应用Tomcat

    Maven直接部署Web应用Tomcat

    2022年1月7日
    49
  • 2G到5G基站架构演进[通俗易懂]

    文章目录2G3G4G5G2G2G通信系统采用3级网络架构,即:BTS-BSC-核心网。2G核心网同时包含CS域和PS域。2G通信系统起初主要采用一体式基站架构。一体式基站架构如下图所示,基站的天线位于铁塔上,其余部分位于基站旁边的机房内。天线通过馈线与室内机房连接。一体式基站架构需要在每一个铁塔下面建立一个机房,建设成本和周期较长,也不方便网络架构的拓展。后来发展成为分布式基站架构。分布式基站架构将BTS分为RRU和BBU。其中RRU主要负责跟射频相关的模块,包括4大模块:中频模块、收发信机模块

    2022年4月9日
    50
  • linux-kernel(内核)升级,降级与使用

    linux-kernel(内核)升级,降级与使用linux-kernel(内核)升级,降级与使用

    2022年4月24日
    54
  • fread函数的使用「建议收藏」

    fread函数的使用「建议收藏」fread函数的原型是:size_tfread(void*ch,size_tmode,size_tnumber,FILE*fp)。第一个参数是数组的地址;第二个参数是数据类型的大小;第三个参数是需要读取多少个这样的数据类型;第四个参数是文件指针。该函数正常情况下返回的值是number,这表示读取了多少个数据。例子:doubleret[10];(其中有一个文件指针名为fp)fread(ret,sizeof(double),10,fp);这个例子表示fread函数将要从fp文件指针中

    2025年11月8日
    4
  • HC32F460开发之rtthread+finsh组件的移植

    HC32F460开发之rtthread+finsh组件的移植文章目录前言一、RT-Thread简介二、rtthread的移植1.裸机例程2.RT-Thread下载2.RT-Thread移植总结前言对于从事单片机的开发人员,操作系统可以说是绕不过的一个必修课程。在稍复杂的应用开发中,一个好的操作系统可以帮助我们将单片机的资源最大化的利用起来,而系统提供的各种API接口也可以可靠地帮我们实现各种应用逻辑功能。日常生活里,在各种各样的电子设备中,操作系统被广泛地应用,常见的有Linux,ucos,以及现在在各种物联网设备中被广泛应用的freertos,RT-Thre

    2022年5月11日
    86

发表回复

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

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