maven 通过Logback记录SQL Server(mssql-jdbc)2017 JDBC?

nhn9ugyo  于 2023-10-17  发布在  Maven
关注(0)|答案(1)|浏览(120)

我试图查看通过应用程序的SQL Server JDBC连接器的SQL语句。我们使用mssql-jdbc。该应用使用slf 4j作为日志门面,当前实现是Logback。
根据their documentation,JDBC驱动程序使用Java Util日志记录。因此,我将SLF 4J的桥添加到我的pom.xml文件中,如下所示:

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
    </dependency>

我还使用the Microsoft documentation添加了一个appender,看起来像这样:

<logger name="com.microsoft.sqlserver.jdbc.Statement" level="FINER" additivity="false">
      <appender-ref ref="CONSOLE"/>
    </logger>

但是,从未看到任何日志记录语句。我尝试了许多不同的方法来配置appender。任何帮助都是感激不尽的。
注意:这些SO问题回答了将java.util日志记录应用程序重定向到logback的一般问题,但它不适用于此JDBC驱动程序:

fykwrbwg

fykwrbwg1#

这是一个老问题,但我回答的情况下,有人有同样的问题。
你添加了jul-to-slf4j,这很好,但你还需要配置SLF 4jHandlers:
1.添加logging.properties,如下所示:

handlers = org.slf4j.bridge.SLF4JBridgeHandler

1.在应用程序启动时加载此文件。对于此步骤,您有两个选择:

  • 启动您的应用程序,使java.util.logging.config.file指向您的logging.properties文件的位置。举例来说:java -jar -java.util.logging.config.file=/path/to/logging.properties
  • 或者,在应用程序启动时加载配置文件:
try (InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("/logging.properties")) {
    LogManager.getLogManager().readConfiguration(is);
} catch (IOException e) {
    // Handle error
}

而且应该是好的!:)

相关问题