为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 log4j.properties 根据大小旋转日志文件并进行压缩

如何使用 log4j.properties 根据大小旋转日志文件并进行压缩

长风秋雁 2021-07-15 14:11:43
主题 - RollingFileAppender ,以及如何压缩旋转的文件RollingfileAppender 根据文件大小轮换日志文件。MaxFileSize 表示文件的最大大小,而 MaxBackupIndex 表示要保留在日志文件夹中的文件数量。下面给出了一个示例属性文件:1   log4j.rootLogger=INFO, fileLogger2   log4j.appender.fileLogger=org.apache.log4j.RollingFileAppender3   log4j.appender.fileLogger.layout=org.apache.log4j.PatternLayout4   log4j.appender.fileLogger.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n5   log4j.appender.fileLogger.File=example.log6   log4j.appender.fileLogger.MaxFileSize=1KB7   log4j.appender.fileLogger.MaxBackupIndex=5基于该配置,我们可以假设日志将作为以下示例轮换...Log.3...Log.2...Log.1但它们没有拉链!我的问题是 - 基于示例属性,我需要在示例中更改什么,log4j.properites以便滚动的文件也将被压缩。——例如,我们配置了以下(根据 Malte 建议)log4j,但不压缩旋转的文件注意 - 这个 log4j 取自 ambari 的 Advanced hive-log4jlog4j.appender.DRFA=org.apache.log4j.RollingFileAppenderlog4j.appender.DRFA.rollingPolicy.FileNamePattern=${hive.log.dir}/${hive.log.file}-.%i.log.ziplog4j.appender.DRFA.MaxBackupIndex=10log4j.appender.DRFA.MaxFileSize=1KB我们得到的日志文件的例子(我们可以看到文件没有被压缩)-rw-r--r--  1 hive hadoop    1055 Aug 15 16:00 hiveserver2.log.5-rw-r--r--  1 hive hadoop    1203 Aug 15 16:00 hiveserver2.log.4-rw-r--r--  1 hive hadoop    1098 Aug 15 16:00 hiveserver2.log.3-rw-r--r--  1 hive hadoop    1028 Aug 15 16:00 hiveserver2.log.2-rw-r--r--  1 hive hadoop    1239 Aug 15 16:00 hiveserver2.log.1-rw-r--r--  1 hive hadoop       0 Aug 15 16:00 hiveserver2.log-rw-r--r--  1 hive hadoop    1065 Aug 15 16:00 hivemetastore.log.4-rw-r--r--  1 hive hadoop    1098 Aug 15 16:01 hivemetastore.log.3-rw-r--r--  1 hive hadoop    1120 Aug 15 16:01 hivemetastore.log.2-rw-r--r--  1 hive hadoop    1098 Aug 15 16:01 hivemetastore.log.1-rw-r--r--  1 hive hadoop     470 Aug 15 16:01 hivemetastore.log
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

正确的配置应该如下(已经测试和验证)


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

log4j.appender.DRFA=org.apache.log4j.rolling.RollingFileAppender

log4j.appender.DRFA.rollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy  

log4j.appender.DRFA.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy  

log4j.appender.DRFA.rollingPolicy.ActiveFileName =${hive.log.dir}/${hive.log.file}.log

log4j.appender.DRFA.rollingPolicy.FileNamePattern=${hive.log.dir}/${hive.log.file}-.%i.log.gz

log4j.appender.DRFA.triggeringPolicy.MaxFileSize=10000

log4j.appender.DRFA.rollingPolicy.maxIndex=10

我们在 /var/log/hive 下得到的示例


-rw-r--r--  1 hive hadoop 1019 Aug 15 20:13 hivemetastore.log-.2.log.gz

-rw-r--r--  1 hive hadoop 1159 Aug 15 20:18 hiveserver2.log-.1.log.gz

-rw-r--r--  1 hive hadoop 5353 Aug 15 20:21 hiveserver2.log

-rw-r--r--  1 hive hadoop 1028 Aug 15 20:22 hivemetastore.log-.1.log.gz

-rw-r--r--  1 hive hadoop 2218 Aug 15 20:22 hivemetastore.log

-rw-r--r--  1 hive hadoop 4361 Aug 15 20:24 hiveserver2-report.json.tmp

-rw-r--r--  1 hive hadoop 4254 Aug 15 20:24 hivemetastore-report.json.tmp


查看完整回答
反对 回复 2021-07-23
  • 2 回答
  • 0 关注
  • 853 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号