我正在尝试查看通过应用程序的 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 驱动程序:
这是一个老问题,但我正在回答以防有人有同样的问题。
您添加了
jul-to-slf4j
,这很好,但您还需要配置SLF4jHandlers:
logging.properties
并添加以下内容:handlers = org.slf4j.bridge.SLF4JBridgeHandler
启动您的应用程序,使
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
}
而且应该不错! :)