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

主题 - RollingFileAppender ,以及如何压缩旋转的文件


RollingfileAppender 根据文件大小轮换日志文件。MaxFileSize 表示文件的最大大小,而 MaxBackupIndex 表示要保留在日志文件夹中的文件数量。


下面给出了一个示例属性文件:


1   log4j.rootLogger=INFO, fileLogger

2   log4j.appender.fileLogger=org.apache.log4j.RollingFileAppender

3   log4j.appender.fileLogger.layout=org.apache.log4j.PatternLayout

4   log4j.appender.fileLogger.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n

5   log4j.appender.fileLogger.File=example.log

6   log4j.appender.fileLogger.MaxFileSize=1KB

7   log4j.appender.fileLogger.MaxBackupIndex=5

基于该配置,我们可以假设日志将作为以下示例轮换


...Log.3

...Log.2

...Log.1

但它们没有拉链!


我的问题是 - 基于示例属性,我需要在示例中更改什么,log4j.properites以便滚动的文件也将被压缩。


——


例如,我们配置了以下(根据 Malte 建议)log4j,但不压缩旋转的文件


注意 - 这个 log4j 取自 ambari 的 Advanced hive-log4j


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

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

log4j.appender.DRFA.MaxBackupIndex=10

log4j.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


长风秋雁
浏览 855回答 2
2回答

一只斗牛犬

正确的配置应该如下(已经测试和验证)log4j.appender.DRFA.layout=org.apache.log4j.PatternLayoutlog4j.appender.DRFA=org.apache.log4j.rolling.RollingFileAppenderlog4j.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}.loglog4j.appender.DRFA.rollingPolicy.FileNamePattern=${hive.log.dir}/${hive.log.file}-.%i.log.gzlog4j.appender.DRFA.triggeringPolicy.MaxFileSize=10000log4j.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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java