限制Log4j2日志最大输出长度

Posted 走路自带音响

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了限制Log4j2日志最大输出长度相关的知识,希望对你有一定的参考价值。

需求由来

昨晚会议,领导提出我们系统的日志刷的太多,给日志的定位造成了极大的困扰,而且一般来说那种很大很大一坨的日志都是不重要的日志,我们不能指望开发时刻意不去打印这些日志,所以只能从日志框架入手解决问题。

参考文档

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

具体实现

在layout中配置 %maxLen{%m}{1500}%n 即可。

Configuration:
status: warn
monitorInterval: 300

properties:
property:
- name: pattern
value: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%logger{36}.%t:%L] <%X{uuid}> - %maxLen{%m}{1500}%n"
- name: path
value: /home/ubuntu/data/server/logs

Appenders:
RollingFile:
- name: AllFile
fileName: ${path}/all.log
filePattern: "${path}/archive/$${date:yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.gz"
PatternLayout:
pattern: ${pattern}
Filters:
ThresholdFilter:
- level: fatal
onMatch: DENY
onMismatch: NEUTRAL
- level: debug
onMatch: ACCEPT
onMismatch: DENY
Policies:
TimeBasedTriggeringPolicy:
interval: 1
SizeBasedTriggeringPolicy:
size: "500 MB"

- name: ErrorFile
fileName: ${path}/error.log
filePattern: "${path}/archive/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz"
PatternLayout:
pattern: ${pattern}
Filters:
ThresholdFilter:
- level: fatal
onMatch: DENY
onMismatch: NEUTRAL
- level: error
onMatch: ACCEPT
onMismatch: DENY
Policies:
TimeBasedTriggeringPolicy:
interval: 1
SizeBasedTriggeringPolicy:
size: "500 MB"

Loggers:
Logger:
name: com.kangyonggan.server.mapper
level: debug
additivity: false
AppenderRef:
- ref: AllFile
- ref: ErrorFile

Root:
level: info
additivity: true
AppenderRef:
- ref: AllFile
- ref: ErrorFile

效果




声明原创需要300字以上,我上面的这些不够300个字吗?它是没有把代码也算进去吧!链接不算字数,代码不算字数,图片url不算字数,对于篇幅较小的文章想声明原创有点困难啊,我啰嗦了这么多应该够300字了吧,不够的话我还可以再啰嗦啰嗦的。


以上是关于限制Log4j2日志最大输出长度的主要内容,如果未能解决你的问题,请参考以下文章

记一次Log4j2日志无法输出的 心酸史

log4j2 - 限制日志文件的数量

idea添加log4j2有颜色的日志输出

Log4j2 的分模块/分包日志输出

Log4j2进阶使用(按大小时间备份日志)

log4j2自定义Appender(输出到文件/RPC服务中)