我试图使用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
变量中?
1条答案
按热度按时间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
。