java - 无法在运行时更改 dropwizard 中的日志级别

标签 java rest yaml slf4j dropwizard

我的 config.yml 文件看起来像这样(日志记录部分):

logging:
 level: INFO
 loggers:
  com.company.package: ERROR
  appenders:
    - type: console
     threshold: DEBUG

这会将 com.company.package 上的所有日志记录设置为 ERROR。我想在开发环境的运行时覆盖它,以记录调试级别的日志。

我尝试使用:

curl -k -X POST -d "logger=com.company.package&level=DEBUG" http://localhost:8081/tasks/log-level

这没有帮助。它仍然只将 ERROR 级别的日志记录到控制台。

也试过这里的答案:

Dropwizard Admin: Change loglevel for all

这也无济于事。

当我将 com.company.package 更改为 DEBUG 时,我能够获得调试日志,但我不想那样做。

最佳答案

我有同样的问题,正如你提到的链接问题也没有解决

在 dw 1.3.8 中,我发现 TaskServlet 第 180 行需要输入作为查询参数而不是在 POST 正文中

例如

curl -k -X POST -d ""'https://localhost:[AdminPort]/tasks/log-level?logger=com.payit.kafka.HelloWorld&level=DEBUG'

关于java - 无法在运行时更改 dropwizard 中的日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52394829/

相关文章:

powershell - 无法在 Gitlab CI/CD yaml 中转义冒号

java - 带有自定义 header 和参数的 RestTemplate GET 请求导致 400(空)

perl - YAML 错误 : Inconsistent indentation level

java - 放置比较器的最佳位置

java - 如果我只有几个状态,状态模式可能会有帮助吗?

java - 在不同的应用程序中写入和读取 Cookie

java - 检查数组是否为空时出现 NullPointerException

php - 使用 Retrofit 在 Android 中使用 PHP 和 MySQL 开发的 RESTful API

ios - 我们是否必须生成并使用客户端库才能使用 Google App Engine 的端点?

python - 使用 Bash 编辑 YAML 文件