Помимо журнала по умолчанию
com.mysql.cj.log.StandardLogger
,
который регистрирует в stderr
, Connector/J
поддерживает модуль регистрации SLF4J, позволяя конечным пользователям,
используя Connector/J, включить платформы журналирования по их собственному
выбору во время развертывания. Популярные платформы журналирования, например,
java.util.logging
,
logback
и
log4j
поддерживаются SLF4J.
Следуйте этим требованиям, чтобы использовать платформу
журналирования с SLF4J и Connector/J:
В среде разработки:
Установите на своей системе
slf4j-api-x.y.z.jar
(доступен на
https://www.slf4j.org/download.html) добавьте его к Java classpath.
В коде приложения получите
SLF4JLogger
как
Log
в
MysqlConnection
Session
, затем используйте экземпляр
Log
для регистрации.
На системе развертывания:
Установите на своей системе
slf4j-api-x.y.z.jar
и
добавьте его к Java classpath.
Установите на своей системе поддержку SLF4J для платформы журналирования по Вашему выбору и добавьте ее к своему Java classpath. SLF4J доступен на https://www.slf4j.org/manual.html#swapping.
Не помещайте больше одной поддержки SLF4J в Java classpath. Переключайтесь от одной платформы журналирования на другую, удаляя поддержку и добавляя новую к пути к классу.
Установите платформу журналирования по Вашему выбору на вашей системе и добавьте ее к Java classpath.
Формируйте платформу журналирования по Вашему выбору. Это часто состоит из подготовки дополнений или обработчиков для сообщений регистрации, используя конфигурационный файл, см. документацию своей платформы журналирования для деталей.
Соединяя приложение с MySQL Server, установите свойство
связи Connector/J logger
в
Slf4JLogger
.
Название категории регистрации, используемое Connector/J с SLF4J,
MySQL
. См.
SLF4J user
manual об использовании SLF4J, включая обсуждения зависимости Maven.
Вот пример кода для использования SLF4J с Connector/J:
import java.sql.DriverManager; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.mysql.cj.jdbc.JdbcConnection; import com.mysql.cj.log.Log; public class JDBCDemo { public static void main(String[] args) { Connection conn = null; Statement statement = null; ResultSet resultSet = null; Log logger = null; try { // Database parameters String url = "jdbc:mysql://myexample.com:3306/pets?logger=Slf4JLogger&explainSlowQueries=true"; String user = "user
"; String password = "password
"; // create a connection to the database conn = DriverManager.getConnection(url, user, password); logger = ((JdbcConnection)conn).getSession().getLog(); } catch (SQLException e) { System.err.println(e.getMessage()); System.exit(1); } try { statement = conn.createStatement(); resultSet = statement.executeQuery("SELECT * FROM pets.dogs"); while(resultSet.next()) { System.out.printf("%d\t%s\t%s\t %4$ty.%4$tm.%4$td \n", resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), resultSet.getDate(4)); } } catch(SQLException e) { logger.logWarn("Warning: Select failed!"); } } }
Если вы хотите использовать, например, Log4j 1.2.17
как свою платформу журналирования, управляя этой программой, используйте ее
поддержку в SLF4J: положите
slf4j-api-1.7.28.jar
(модуль API SLF4J),
slf4j-log4j12-1.7.28.jar
(модуль поддержки SLF4J
для Log4J 1.2) и log4j-1.2.17.jar
(библиотека
Log4J) в Java classpath.
Вот вывод программы, когда оператор SELECT потерпел неудачу:
[2019-09-05 12:06:19,624] WARN 0[main] - WARN MySQL - Warning: Select failed!