Глава 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, созданного внутриMysqlConnectionSession, и затем используйте экземпляр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.