首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dropwizard管理:更改所有用户的日志级别

Dropwizard管理:更改所有用户的日志级别
EN

Stack Overflow用户
提问于 2017-07-21 17:52:59
回答 1查看 7.6K关注 0票数 6

我的配置是标准的

代码语言:javascript
复制
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):

代码语言:javascript
复制
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,并重新启动,我将得到调试级别。

什么命令?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-19 15:13:19

我已经为log-level任务设置了log-level,其主要逻辑实现如下:

代码语言:javascript
复制
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接口的源代码,并找到了这个字段:

代码语言:javascript
复制
String ROOT_LOGGER_NAME = "ROOT";

做这样的POST为我解决了问题:

代码语言:javascript
复制
curl -X POST -d "logger=ROOT&level=DEBUG" localhost:8081/tasks/log-level
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45243873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档