1. 程式人生 > 其它 >修改Zookeeper輸出日誌 zookeeper.out輸出路徑【轉】

修改Zookeeper輸出日誌 zookeeper.out輸出路徑【轉】

使用過zookeeper的小夥伴都知道,當前終端處於哪個目錄,執行完zkServer.sh start命令, zookeeper.out就會寫在哪個目錄,下次想看zookeeper日誌的時候,又忘記上次在哪執行的命令啦,這真的很蛋疼(雖然可以每次固定在某個目錄執行),在多次痛苦之後,決定修改日誌輸出到固定目錄,方便問題定位。

檢視bin目錄下的zkEnv.sh找到了這一行,發現如果沒有配置ZOO_LOG_DIR,預設就是儲存在終端所在當前目錄下,所以果斷修改(或者可以在上面配置ZOO_LOG_DIR這個變數)

ZOO_LOG_DIR="$ZOOKEEPER_PREFIX/logs"


將日誌檔案寫到zookeeper安裝目錄下的logs資料夾中(logs不需要建立,它會自己建立)

美中不足的是在你設定的目錄中, 仍會有zookeeper.out檔案存在, 雖然它的size=0,究其原因是因為zkServer.sh會使用nohup進行zookeeper的啟動, 然而nohup必然會輸出一個日誌檔案到你設定的目錄中,

相關程式碼如下, 需要將此處的邏輯修改掉, 就可以將zookeeper.out移除啦,

最後修改 bin/zkServer.sh

_ZOO_DAEMON_OUT="$ZOO_LOG_DIR/zookeeper.log"

ok,完成!

既然改都改了,為什麼不改的徹底一點呢?讓他按照天進行滾動

繼續修改bin目錄下的zkEnv.sh,修改為:


ZOO_LOG4J_PROP="INFO,CONSOLE"
修改為:
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"


修改conf/log4j.properties檔案

其它可配置引數:

log4j.appender.ROLLINGFILE.File=zookeeper.log
log4j.appender.ROLLINGFILE.DataPattern='.'yyyy-MM-dd-HH-mm
log4j.appender.ROLLINGFILE.Threshold=debug
log4j.appender.ROLLINGFILE.encoding=UTF-8
log4j.appender.ROLLINGFILE.Append=false
log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLINGFILE.layout.ConversionPattern= [%d{yyyy-MM-dd HH\:mm\:ss}]%-5p %c(line\:%L) %x-%m%n
DailyRollingFileAppender特點是固定週期時間生成一個日誌檔案,比如,預設情況是每天生成一個檔案。這種日誌可以方便根據時間來定位日誌位置,使日誌清晰易查。但是這種日誌有個不好地方是,不能限制日誌數量,MaxBackupIndex屬性和MaxFileSize在DailyRollingFileAppender中是無效的,這個還是按照自己的需求來定!

所以還需要自己弄個Crontab定期清理日誌

指令碼定期清理zk快照和日誌檔案

正常執行過程中,ZK會不斷地把快照資料和事務日誌輸出到dataDir和dataLogDir這兩個目錄,並且如果沒有人為操作的話,ZK自己是不會清理這些檔案的。 我這裡採用指令碼切割。

#!/bin/bash
#清理zookeeper的日誌 保留7天內的
#

datadir=/opt/zookeeper/zkdata/version-2
logdir=/opt/zookeeper/log/version-2

cd $datadir
find . -mtime +7 |xargs rm -rf
cd $logdir
find . -mtime +7 |xargs rm -rf

#########################################################################

注意:如果僅僅是清理快照日誌資料:在zoo.cfg中配置即可

    1. autopurge.snapRetainCount=20 #保留日誌快照數量

    2. autopurge.purgeInterval=48 #保留48小時內的日誌資料

轉自
————————————————
版權宣告:本文為CSDN博主「笨鳥先飛-天道酬勤」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/dehu_zhou/article/details/81939965