gpt4 book ai didi

java - Dropwizard 管理员 : Change loglevel for all

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:06:24 25 4
gpt4 key购买 nike

我的配置是标准的

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,但是拖尾日志没有改变,仍然是信息。当然,如果我更改配置并将顶层设置为 DEBUG,然后重新启动,我将获得 DEBUG 级别。

命令是什么?

最佳答案

我已经 checked the source code对于log-level任务,其主要逻辑是这样实现的:

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 接口(interface)的源代码并找到了这个字段:

String ROOT_LOGGER_NAME = "ROOT";

像这样执行 POST 为我解决了这个问题:

curl -X POST -d "logger=ROOT&level=DEBUG" localhost:8081/tasks/log-level

关于java - Dropwizard 管理员 : Change loglevel for all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45243873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com