2016-02-04 7 views
6

私はApache Sparkのspark-shellとmesosとzookeeperを使用していますが、これは私が望むよりも飼い主のログが増えていることを除けばうまくいくようです気が散る:飼い葉桶のCクライアントのログレベルをローカルで変更する

Welcome to 
     ____    __ 
    /__/__ ___ _____/ /__ 
    _\ \/ _ \/ _ `/ __/ '_/ 
    /___/ .__/\_,_/_/ /_/\_\ version 1.5.0 
     /_/ 

Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_60) 
Type in expressions to have them evaluated. 
Type :help for more information. 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]: Client environment:zookeeper.version=zookeeper C client 3.4.6 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]: Client environment:host.name=myhost 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]: Client environment:os.name=Linux 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]: Client environment:os.arch=3.2.0-34-generic 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]: Client environment:os.version=#53-Ubuntu SMP Thu Nov 15 10:48:16 UTC 2012 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]: Client environment:user.name=myname 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]: Initiating client connection, host=localhost:9999 sessionTimeout=10000 watcher=0xffffffffff sessionId=0 sessionPasswd=<null> context=0x777777777777 flags=0 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]03: initiated connection to server [127.0.0.1:9999] 
2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):[email protected][email protected]: session establishment complete on server [127.0.0.1:9999], sessionId=0x11111111111111, negotiated timeout=10000 
Spark context available as sc. 
SQL context available as sqlContext. 

scala> 

私は仕事ではないが、私はmesos documentation mentions that the zookeeper logging goes directly to stderrので、驚いていませんでした$SPARK_CONF_DIR/log4j.properties

log4j.logger.org.apache.zookeeper=WARN 

を変更しようとしました:

注:サードパーティのログメッセージ(例: ZooKeeper)はstderrにのみ書かれています!

zookeeper C api function to change the log levelに外国関数インタフェースの呼び出しと静的なブロックを持っている、それがうまくいくかもしれないように思えるクラスパスを刺激するためにjarファイルを追加し、私はわからない、と私は呼び出しの経験を持っていませんJVMからのCコード。加え

答えて

1

log4j.logger.org.apache.zookeeper=WARN 

(上記と)優先ERRORでのみログを印刷するために、標準エラーログレベルを設定します。

# Send WARN or higher to stderr 
log4j.appender.stderr = org.apache.log4j.ConsoleAppender 
log4j.appender.stderr.Threshold = ERROR 
log4j.appender.stderr.Target = System.err 

hereを示すようにもLevelRangeFilterも有用であることが分かるかもしれません。

+0

これは、zookeeperの 'ZOO_INFO'ログには違いがありませんでした。これはstderrでまだ吐き出されています。 – rampion

1

これでも何も見つかりませんでしたが、JNI(Java-to-C)ではthisを提供できます。 zookeeperのどちらも、Webサービスやシェルを持っていない(zookeeperはzkshellを持っていますが、私たちの場合は使用できません)。

関連する問題