基于log4j2.properties踩坑与填坑的示例分析(log4j2,properties,开发技术)

时间:2024-04-28 17:20:47 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    %E5%9F%BA%E4%BA%8Elog4j2.properties%E8%B8%A9%E5%9D%91%E4%B8%8E%E5%A1%AB%E5%9D%91%E7%9A%84%E7%A4%BA%E4%BE%8B%E5%88%86%E6%9E%90

门面模式:slf4j

日志库:log4j2

引入依赖:compile('org.springframework.boot:spring-boot-starter-log4j2:2.0.4.RELEASE')

启动Application时,出现Multiple bindings were found on the class path的问题

坑点:没有排除对默认logback的依赖

填坑:在build.gradle中加入:

启动后,没有按照配置好的格式输出

坑点:没有在application.[yml|properties]中声明配置文件的路径

填坑:在application.yml中加入

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

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

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

%c 输出所属的类目,通常就是所在类的全名

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

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

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

%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

%F 输出日志消息产生时所在的文件名称

%L 输出代码中的行号

%x 输出和当前线程相关联的NDC(嵌套诊断环境),像java servlets多客户多线程的应用中

%% 输出一个"%"字符

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

%5c: 输出category名称,最小宽度是5,category<5,默认的情况下右对齐

%-5c:输出category名称,最小宽度是5,category<5,"-"号指定左对齐,会有空格

%.5c:输出category名称,最大宽度是5,category>5,就会将左边多出的字符截掉,<5不会有空格

%20.30c:category名称<20补空格,并且右对齐,>30字符,就从左边交远销出的字符截掉

实现控制台打印,以及基于时间和基于文件大小的本地保存策略。

打印效果

打印时,对不同level的日志定义了不同的字体颜色,方便定位。

%highlight{%d{yyyy-MM-dd HH:mm:ss.SSS} [%5p] [%t] [%l] - %m%n}{FATAL=white, ERROR=red, WARN=blue, INFO=Green, DEBUG=Yellow, TRACE=blue}

原工作组比较清闲,被临时借调到新的工作组。组长给了个任务是把Log4j的XML配置文件改成properties,原因是XML格式的看着不舒服。哈,以上不算吐槽,只是交待一下,为什么我要这么费劲的使用properties做配置文件。

Log4j2 一开始抛弃了properties配置文件格式,到2.4版本时,又开始支持properties配置文件格式。到2.6版本又有新的要求。我用的是写本文时的最近版本2.8

本文:基于log4j2.properties踩坑与填坑的示例分析的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:javaCV视频处理之如何提取人像视频下一篇:

16 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18