14

ローカル クラスターから実行するときに、既定で提供されるログ機能をオフにしたいと考えています。現在、コンソールに非常に多くの情報を記録しています。

以下はログの例です。

261 [main] INFO  backtype.storm.daemon.task  - Shut down task Getting-Started-Toplogie-1-1376388324:2
2261 [main] INFO  backtype.storm.daemon.task  - Shutting down task Getting-Started-Toplogie-1-1376388324:1
2262 [Thread-24] INFO  backtype.storm.util  - Async loop interrupted!
2276 [main] INFO  backtype.storm.daemon.task  - Shut down task Getting-Started-Toplogie-1-1376388324:1
2278 [main] INFO  backtype.storm.daemon.worker  - Terminating zmq context
2279 [main] INFO  backtype.storm.daemon.worker  - Disconnecting from storm cluster state context
2279 [main] INFO  backtype.storm.daemon.worker  - Waiting for heartbeat thread to die
2279 [Thread-27] INFO  backtype.storm.util  - Async loop interrupted!
2308 [main] INFO  backtype.storm.testing  - Shutting down in process zookeeper
2309 [main] INFO  backtype.storm.testing  - Done shutting down in process zookeeper
2309 [main] INFO  backtype.storm.testing  - Deleting temporary path /tmp/255fe7c8-1407-4f43-8771-2217905232ab

多くのドキュメントを調べた後、以下のコードになりました。クラス内からログをオフにすることができます。

static Logger logger = Logger.getLogger(TopologyMain.class);

public static void main(String[] args) throws InterruptedException, AlreadyAliveException, InvalidTopologyException {        
      logger.setLevel((Level) Level.FATAL);
      logger.debug("Here is some DEBUG");
      logger.info("Here is some INFO");
      logger.warn("Here is some WARN");
      logger.error("Here is some ERROR");
      logger.fatal("Here is some FATAL");
 }
}

出力 (正しい) :0 [main] FATAL TopologyMain - Here is some FATAL

ただし、storm/zookeper などのログ設定を変更する必要があります。

誰でもこれについて助けてもらえますか?


更新: 以下は私が試したコードですが、動作しません。バージョン 0.7.1、0.8.2、および 0.9.0-wip* で試しました

        //Configuration
        Config conf = new Config();
        conf.put(Config.TOPOLOGY_DEBUG, false);  //Tried this alone
        conf.setDebug(false);  //Tried this alone & tried both together as well.. No change :-(
4

6 に答える 6

11

Storm は本当におしゃべりで、多くの情報を伝えますが、沈黙させたい場合は、Config.TOPOLOGY_DEBUGを false に設定できます。

Config.TOPOLOGY_DEBUG を true に設定すると、スパウトまたはボルトからタプルが発行されるたびにメッセージをログに記録するように Storm に指示します。

于 2013-08-13T12:19:59.973 に答える
2

以下のコードを log4j.xml に追加します。目的のログとコンソール出力を出力するだけです:-

<logger name="org.apache.zookeeper">
        <level value="warn"/>
    </logger>

    <logger name="backtype.storm">
        <level value="warn"/>
    </logger>

    <logger name="com.netflix">
        <level value="warn"/>
    </logger>

クラスで Logger.getLogger(Class) を使用します。

于 2013-11-01T06:07:44.310 に答える
2

これは私にとってはうまくいきます(ストームバージョン0.9.0.1):

TopologyBuilder builder = new TopologyBuilder();
builder.setSpout(..);
builder.setBolt(..);
:

Config conf = new Config();
conf.put(Config.TOPOLOGY_DEBUG, false);

LocalCluster cluster = new LocalCluster();
cluster.submitTopology("topologyName", conf, builder.createTopology());
于 2014-07-21T07:59:33.217 に答える
0

ログ レベルの動的な設定に関する優れたドキュメントがあります。これは、UI からも CLI からも実行できます。後者の方が私にはよく見えます。トポロジを開始したら、次のコマンドを使用するだけです (Storm のインストール ディレクトリ内から)。

    ./bin/storm set_log_level [topology name] -l [logger name]=[LEVEL]:[TIMEOUT]

詳細については、このリンクを確認してください

于 2017-02-06T11:46:29.823 に答える