我的配置是标准
logging:
# The default level of all loggers. Can be OFF, ERROR, WARN, INFO, DEBUG, TRACE, or ALL.
level: INFO
# Logger-specific levels.
loggers:
# Sets the level for 'com.example.app' to DEBUG.
com.example.app: DEBUG
# Redirects SQL logs to a separate file
org.hibernate.SQL:
level: DEBUG
我想将所有记录器的默认日志级别更改为DEBUG
。我已经尝试了以下操作并且没有任何作用(比如管理端口是1234):
curl -X POST -d "logger=all&level=DEBUG" localhost:1234/tasks/log-level
curl -X POST -d "level=DEBUG" localhost:1234/tasks/log-level
curl -X POST -d "logger=*&level=DEBUG" localhost:1234/tasks/log-level
当我使用-vv
运行这些内容时,例如logger=all
,我看到Configured logging level for all to DEBUG
,但是日志的尾随不会改变,并且仍然是INFO。当然,如果我更改配置并将顶级设置为DEBUG
,然后重新启动,我将获得DEBUG级别。
命令是什么?
答案 0 :(得分:8)
我为log-level
任务checked the source code,其主要逻辑是这样实现的:
for (String loggerName : loggerNames) {
((LoggerContext) loggerContext).getLogger(loggerName).setLevel(loggerLevel);
output.println(String.format("Configured logging level for %s to %s", loggerName, loggerLevel));
output.flush();
}
所以它实现的方式是基于记录器的名称,知道我进入org.slf4j.Logger
接口的源并找到了这个字段:
String ROOT_LOGGER_NAME = "ROOT";
像这样做POST
为我解决了这个问题:
curl -X POST -d "logger=ROOT&level=DEBUG" localhost:8081/tasks/log-level