Spec-Zone.ru › MySQL Connectors 1.0
Глава 12 Использование фреймворков ведения журналов с SLF4J

Глава 12 Использование фреймворков ведения журналов с SLF4J

Помимо своего стандартного логгера 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.

    • В коде вашего приложения получите SLF4JLogger в качестве Log, созданного внутри MysqlConnection Session, и затем используйте экземпляр Log для ведения журналов.

  • В системе развертывания:

    • Установите на вашей системе slf4j-api-x.y.z.jar и добавьте его в путь к классам Java

    • Установите на вашей системе связку SLF4J для фреймворка ведения журналов по вашему выбору и добавьте её в путь к классам Java. Связки SLF4J доступны, например, по адресу https://www.slf4j.org/manual.html#swapping.

      Примечание

      Не размещайте более одной связки SLF4J в пути к классам Java. Переключайтесь между фреймворками ведения журналов, удаляя одну связку и добавляя новую в путь к классам.

    • Установите на вашей системе фреймворк ведения журналов по вашему выбору и добавьте его в путь к классам Java.

    • Настройте выбранный фреймворк ведения журналов. Это часто включает в себя настройку аппендеров или обработчиков для сообщений журнала с помощью файла конфигурации; см. документацию по вашему фреймворку ведения журналов для получения подробностей.

    • При подключении приложения к серверу MySQL установите свойство подключения Connector/J logger на Slf4JLogger.

Имя категории журнала, используемое Connector/J с SLF4J, это MySQL. См. руководство пользователя SLF4J для получения дополнительных сведений об использовании 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 2.17.1 в качестве фреймворка ведения журналов при выполнении этой программы, поместите эти JAR-файлы в свой путь к классам Java:

  • slf4j-api-2.0.3.jar (модуль API SLF4J, доступен, например, по адресу https://central.sonatype.com/artifact/org.slf4j/slf4j-api/2.0.3/jar).

  • log4j-api-2.17.1.jar и log4j-core-2.17.1.jar (библиотека Log4J, доступна, например, по адресу https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-api/2.17.1/jar и https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-core/2.17.1/jar).

  • log4j-slf4j-impl-2.17.1.jar (связка SLF4J для Log4J 2.17.1, доступна, например, по адресу https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl/2.17.1/jar).

Вот вывод программы, когда оператор SELECT завершился ошибкой:

[2021-09-05 12:06:19,624] WARN     0[main] - WARN MySQL - Warning: Select failed!

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-j-en/connector-j-logging-slf4j.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API