ZooKeeper的日志是序列化過的,所以需要反序列化。
* 由於版本差異的原因,以下方法並不是每個版本都適用,請自行嘗試。
方法1
java -cp zookeeper-3.4.12.jar:slf4j-api-1.7.25.jar org.apache.zookeeper.server.LogFormatter 日志文件名 > temp.log
方法2
java -cp zookeeper-3.6.2/lib org.apache.zookeeper.server.LogFormatter 日志文件名 > temp.log
方法3
java -cp * org.apache.zookeeper.server.LogFormatter 日志文件名 > temp.log
方法4
hbase org.apache.zookeeper.server.LogFormatter 日志文件名 > temp.log
方法5
ZooKeeper 3.6版本及之后的版本,新增了2個日志讀取工具,讀取log和snapshots。
zkTxnLogToolkit.sh -d 日志文件名 zkSnapShotToolkit.sh -d 快照文件名
zkTxnLogToolkit和zkSnapShotToolkit的參數說明:
$ bin/zkTxnLogToolkit.sh usage: TxnLogToolkit [-dhrv] txn_log_file_name -d,--dump Dump mode. Dump all entries of the log file. (this is the default) -h,--help Print help message -r,--recover Recovery mode. Re-calculate CRC for broken entries. -v,--verbose Be verbose in recovery mode: print all entries, not just fixed ones. -y,--yes Non-interactive mode: repair all CRC errors without asking
* 上面命令中的jar包的版本號,根據實際安裝的版本號修改一下,具體的查找命令:
find -name zookeeper*jar
find -name slf4j-api*jar