# 动态日志级别设置

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

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

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

Using the Storm UI

## 使用 Storm UI

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

![Change Log Level dialog](img/6d64db75b552a852437075a0f5b2d819.jpg "Change Log Level dialog")

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

![After adding a log level setting](img/b9e689fd67c9cb6bbf80cfb67b574d4c.jpg "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记录器动态日志级别，将其重置为原始值。