通过Storm UI 和 Storm CLI可以动态调整运行中的topology的日志级别。这里日志级别的设置和log4j是一样的,如果你设置了父logger的日志级别,对子logger也会生效(除非子logger已经有了一个更具限制性的日志级别),timeout是一个可选项(除了调试模式,对UI来说是必须的),这个恢复动作使用轮询机制触发。
Using the Storm UI
点击一个正在运行中的topology,在Topology Actions节点击“Change Log Level”。
然后,输入logger名称,选择你期望的日志级别(例如warn),设置一个timeout(不需要的话可以留0),之后点击“Add”。
点击“Clear” 按钮可以删除日志级别,这将重置日志级别。虽然重置日志级别会有延迟,但是设置日志级别实际上是立竿见影的(或者说和消息从UI/CLI通过nimbus、zookeeper传输到workers一样快)。
Using the CLI
命令格式如下:
./bin/storm set_log_level [topology name] -l [logger name]=[LEVEL]:[TIMEOUT]
例如:
./bin/storm set_log_level my_topology -l ROOT=DEBUG:30
这会设置ROOT logger 到DEBUG级别,持续30秒。
./bin/storm set_log_level my_topology -r ROOT
删除ROOT logger动态日志级别,重置到初始值。