如何从日志文件unix保留最后20 MB。(不使用Logrotate且不重新创建文件)

时间:2018-11-29 03:07:00

标签: file unix logging hive

我想通过保留最后20 mb的方式在unix中截断文件(hive.log),并且由于该文件正被其他应用程序使用,我不想冒任何风险来重新创建它。

我已经尝试过unix truncate命令,但是它会随机截断并且找不到任何满足我要求的选项。

1 个答案:

答案 0 :(得分:1)

hive使用Log4j来保存日志。因此,您想要实现的任何目标都可以通过修改log4j property file来完成。

文件位置: /etc/hive/conf/hive-log4j.properties

内容,您应该对此感兴趣

log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender

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

# Rollver at midnight
log4j.appender.DRFA.DatePattern=.yyyy-MM-dd

# 30-day backup
#log4j.appender.DRFA.MaxBackupIndex= 30
log4j.appender.DRFA.MaxFileSize = 256MB
log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
  

log4j.appender.DRFA = org.apache.log4j.DailyRollingFileAppender

说它是“每日轮播”文件

  

log4j.appender.DRFA.MaxBackupIndex = 30

说它将保留30个日志备份。

  

log4j.appender.DRFA.MaxFileSize = 256MB   说最大文件大小为256MB。

现在,您知道需要更改哪些属性。