动态日志级别设置

我们已经添加了使用Storm UI 和Storm CLI为正在运行的拓扑设置日志级别的功能。

日志级别设置的应用方式与log4j所期望的相同,因为我们正在做的是告诉log4j设置您提供的记录器的级别。如果您设置父记录器的日志级别,则子级记录器将开始用该级别(除非该子级别的限制级别更高)。可以选择提供超时(除了DEBUG模式,在UI中需要它了),如果工作人员应自动重置日志级别。

这种恢复操作是使用轮询机制触发的(每隔30秒,但这是可配置的),所以你应该期望你的超时值是你提供的值加上0和设置值之间的任何值。

Using the Storm UI

使用 Storm UI

为了设置一个级别,请单击运行的拓扑,然后单击”拓扑操作”部分中的”更改日志级别”。

Change Log Level dialog

然后,提供记录器的名称,选择您期望的级别(例如WARN)和超时(以秒为单位)(如果不需要则为0),然后点击”添加”。

After adding a log level setting

要清理日志级别,请单击”清除”按钮。这会将日志级别恢复添加设置之前的级别。日志级别线也将从UI消失。

虽然有延时重置日志级别,但首先设置日志级别是即时消息(或者消息可以通过nimbus和zookeeper从UI/CLI传送到工作人员)。

使用 CLI

使用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记录器设置为DEBUG 30秒。

./bin/storm set_log_level my_topology -r ROOT

清除ROOT记录器动态日志级别,将其重置为原始值。