如何在bash脚本中隐藏zookeeper日志并只复制zk对变量的响应

gijlo24d  于 2022-12-16  发布在  Apache
关注(0)|答案(1)|浏览(117)

我试图使用www.example.com获取由zookeeper维护的文件zkcli.sh,但每次都有一个zookeeper连接日志消息打印在控制台上,我们没有权限更改zookeeper中的日志级别。
例如,

#!/bin/bash

file=$(zkcli.sh -zkhost ${zkHost} -cmd get /filepath/file.txt)

无论何时执行,都会在控制台中打印一条日志消息。

INFO  - 2020-07-22 17:30:29.895; org.apache.solr.common.cloud.ConnectionManager; Waiting for client to connect to ZooKeeper
INFO  - 2020-07-22 17:30:29.915; org.apache.solr.common.cloud.ConnectionManager; zkClient has connected
INFO  - 2020-07-22 17:30:29.915; org.apache.solr.common.cloud.ConnectionManager; Client is connected to ZooKeeper

如何从控制台中抑制此日志消息并将file.txt内容复制到file变量中?

x6492ojm

x6492ojm1#

虽然不经过一些处理就不能完全隔离文件的内容(因为www.example.com中的print语句ZooKeeperMain.java,如System.out.println("Connecting to " + cl.getOption("server"));),但可以使用环境变量显著减少冗长的内容:
ZOO_LOG4J_PROP="ERROR,ROLLINGFILE" bin/zkCli.sh -cmd get /filepath/file.txt
在我的默认设置(版本3.6.2)中,日志消息被写入logs/下的一个文件中。该目录也可以用ZOO_LOG_DIR配置。为了进行更精细的调整,也可以修改conf/log4j.properties

相关问题