我想通过保留最后20 mb的方式在unix中截断文件(hive.log),并且由于该文件正被其他应用程序使用,我不想冒任何风险来重新创建它。
我已经尝试过unix truncate命令,但是它会随机截断并且找不到任何满足我要求的选项。
答案 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。
现在,您知道需要更改哪些属性。