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

问题描述 投票:0回答:1

我正在尝试查看通过应用程序的 SQL Server JDBC 连接器的 sql 语句。我们正在使用 mssql-jdbc。该应用程序使用 slf4j 作为日志记录门面,当前实现是 Logback。

根据他们的文档,JDBC 驱动程序使用 Java Util 日志记录。因此,我已将 SLF4J 的桥添加到我的 pom.xml 文件中,如下所示:

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

我还使用 Microsoft 文档 添加了一个附加程序,如下所示:

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

但是,没有看到任何日志记录语句。我尝试了许多不同的方法来配置附加程序。如有任何帮助,我们将不胜感激。

注意:这些问题回答了将 java.util 日志记录应用程序重定向到 logback 的一般问题,但它不适用于此 JDBC 驱动程序:

java sql-server maven logging jdbc
1个回答
0
投票

这是一个老问题,但我正在回答以防有人有同样的问题。

您添加了

jul-to-slf4j
,这很好,但您还需要配置SLF4jHandlers:

  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
}

而且应该不错! :)

© www.soinside.com 2019 - 2024. All rights reserved.