【问题标题】:Run spring app with --debug doesn't affect my loggers使用 --debug 运行 spring 应用程序不会影响我的记录器
【发布时间】:2020-05-10 11:11:50
【问题描述】:
private static final Logger myLogger = LoggerFactory.getLogger("NAME");

我有几个像上面的例子一样创建的记录器,问题是,当我使用--debug 运行我的 Spring 应用程序时,myLogger.debug("something") 没有被记录,只有 spring 默认/内部记录器实际上使用了 @ 987654324@args.

如何让我的记录器也使用--<level> args?

【问题讨论】:

  • 这是否是您的Logger 定义。 private static final Logger myLogger = LoggerFactory.getLogger("NAME");
  • 在哪里?它在主课上。
  • 将您的记录器定义更改为此。 private static final Logger LOGGER = LoggerFactory.getLogger(YourClassName.class);
  • 仍然没有调试日志。
  • 您是否在 application.properties 文件中添加了 logger 的任何属性

标签: java spring spring-boot slf4j


【解决方案1】:

这是设计使然。无法让其他记录器使用 —debug 或任何其他级别。

来自docs

默认日志配置将消息回显到控制台,因为它们 被写。默认情况下,ERROR 级别、WARN 级别和 INFO 级别 消息被记录。您还可以通过启动来启用“调试”模式 带有 --debug 标志的应用程序。

$ java -jar myapp.jar --debug

[注意] 也可以指定debug=true 在您的 application.properties 中。

启用调试模式后,选择的核心记录器(嵌入式 容器、Hibernate 和 Spring Boot)配置为输出更多 信息。启用调试模式不会配置您的 应用程序来记录所有带有 DEBUG 级别的消息。

或者,您可以通过启动您的 带有 --trace 标志的应用程序(或 trace=true 在您的 应用程序.properties)。这样做会启用跟踪日志记录 选择核心记录器(嵌入式容器、Hibernate 模式 一代,以及整个 Spring 产品组合)。

但是您可以使用以下键值在应用程序属性文件中记录所有调试消息

logging.level.root=debug

更多关于这里的实现https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/logging/LoggingApplicationListener.java

【讨论】:

    【解决方案2】:

    您好,下面是一个示例 logback.xml,放在资源文件夹中

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <logger name="<PACKAGE ON WHICH YOU WOULD LIKE TO ENABLE DEBUGGING (EXAMPLE: com.mypackage)>" level="DEBUG" />
       <root level="ERROR">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="DAILY_ROLLING" />
        <appender-ref ref="SYSLOG" />
      </root>
    </configuration>
    

    更改&lt;PACKAGE ON WHICH YOU WOULD LIKE TO ENABLE DEBUGGING (EXAMPLE: com.mypackage))&gt; 使用您自己想要启用 DEBUG 的包。

    或者,如果您想在所有软件包上启用根级别,请将 &lt;root level="ERROR" &gt; 替换为 &lt;root level="DEBUG" &gt;。即使它是在依赖项中打印的,它也会打印所有代码的调试消息。另外,如果您的包的日志级别与根级别相同,您可以删除&lt;logger name="&lt;PACKAGE ON WHICH YOU WOULD LIKE TO ENABLE DEBUGGING (EXAMPLE: com.mypackage)&gt;" level="debug" /&gt;

    【讨论】:

      猜你喜欢
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 2017-04-12
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多