当前位置: 首页 > 知识库问答 >
问题:

Logback显示配置org.hibernate.sql记录器时root位于级别信息的调试输出

麹权
2023-03-14
<configuration scan="true" debug="false">
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>logs/test.log</file>
    <encoder>
      <pattern>%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC} [%thread] %-5level %logger{5} - %msg%n</pattern>
    </encoder>
  </appender>
  <root level="INFO">
    <appender-ref ref="FILE" />
  </root>
  <logger name="org.hibernate.SQL" level="DEBUG" />
</configuration>

在JUnithtml" target="_blank">测试期间,文件中会出现大量的信息/警告/错误消息。但是我很惊讶地看到以下来自org.hibernate.sql的调试输出,它是唯一贡献调试级输出的包。我想我必须将根记录器设置为level DEBUG才能允许这样做;我想级别信息会阻止它:

2018-09-18T13:31:02.596Z [http-nio-auto-1-exec-4] DEBUG o.h.SQL - delete from C_NOTIF_XYZ where ID=?

Hibernate似乎通过注释使用org.jboss.logging.logger,参见https://github.com/Hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/Hibernate/internal/coregging.java

由于使用了注释,我不确定是否找到了创建上面显示的删除输出的确切类。我从googling中看到,有些人建议使用日志shim类的交互;但我不确定。

非常类似的SO问题(所以我不是一个人),但没有答案:使用logback,尽管根级别设置为“错误”,但仍然记录调试消息。

提前谢谢你的提示。

共有1个答案

双弘益
2023-03-14

从文档中:

给定记录器L的有效级别等于其层次结构中的第一个非NULL级别,从L本身开始,在层次结构中向上向根记录器移动。

因此,您可以为覆盖根级别的记录器定义一个有效级别。您看到的行为是默认的日志行为。

    null
 类似资料:
  • 对于我在Python(2.7)中的第一个日志记录实验,我正在创建一个基本的日志记录模块,它将快速为创建一个记录器(这样我就不必为每个模块/类配置它)。 我想要做的是创建一个日志程序,它在控制台上显示所有级别信息及更高级别的消息,并将所有调试级别信息移动到一个文本文件中。 到目前为止,我已经创建了一个日志程序,它打印信息直到控制台,并将每个日志消息打印到一个文本文件。然而,我不想要所有的信息和更高的

  • 出于某种原因,我可以看到Log.i()及以上所有级别的消息,但看不到Log.d()或Log.v()级别的消息。一直没找到原因。有人知道如何解决这个问题吗? 一些进一步的细节:这不是我忘记在Eclipse的logcat下拉列表中选择适当级别的问题。有问题的日志消息也不会显示在我手机上用于logcat跟踪的应用程序上。(不过,调试日志消息会从其他应用显示)。我正在运行 OSX。

  • 这是我的log4j配置文件: 日志记录级别设置为error,但在控制台中,我有许多级别为info或debug的日志。为什么将此消息登录到控制台?我的配置无效?控制台日志示例:https://pastebin.com/QEHnAYVg在测试中的@Before注释中,我有一行:propertyconfigulator。配置(“log4j.properties”);,也许有问题的根源?

  • 问题内容: 如何配置Logback以将记录器的不同级别记录到不同的目的地? 例如,给定以下Logback配置,Logback会将消息记录到并将消息记录到吗? (请注意,此示例是第3章:Logback配置中所示示例的变形)。 问题答案: 更新:有关使用Groovy的基于所有配置的方法,请参见DeanHiller的答案。 好的,这是我最喜欢的xml方法。我为Eclipse版本执行此操作,因此我可以 单

  • 我还希望com.mypack的级别“trace”与“info”的行为方式相同。到目前为止,我还没有取得任何成功。我需要像这样的东西 感谢你的帮助。

  • 在我看来,我想要达到的目标是很普通的,但我并没有让它起作用: 根记录器可以记录从其他特定记录器传递的信息消息,但是对于这个特定的记录器,我不希望任何信息消息被向上传递到层次结构上。