Dropwizard Admin:更改所有的日志级别 - java

我的配置是标准的

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级别。

命令是什么?

参考方案

我已经为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

使用DropWizard计时器查找代码块的执行时间 - java

我经历了这个问题DropWizard Metrics Meters vs Timers,并了解了计时器的概念。但是有没有一种方法可以记录每次代码块的执行时间?我不希望此计时器的平均速率和工作量,因为该方法的调用频率并不高,但是调用时会花费大量时间。有没有办法打印每个调用的执行时间?另外我如何获得以下问题的答案我该如何调查值峰值的原因?我怎么知道最大时间事件何…

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

使用dropwizard轮询SQS - java

我要实现的目标:我想制作一个轮询Amazon SQS的dropwizard客户端。每当在队列中找到消息时,都会对其进行处理和存储。有关已处理消息的一些信息将通过API提供。 为什么选择Dropwizard:似乎是制作REST客户端的好选择。我需要指标,数据库连接并与一些Java服务集成。 我需要什么帮助:尚不清楚在典型的dropwizard应用程序中SQS轮…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…