Войдите в базу данных, используя log4j

Так как в log4j javadoc

ПРЕДУПРЕЖДЕНИЕ. Эта версия JDBCAppender, скорее всего, будет полностью заменена в будущем. Более того, он не регистрирует исключения.

Что мне делать для входа в базу данных?

Ответы

Ответ 1

Если вы ищете приложение для базы данных, которое работает не только, но также поддерживает объединение пулов, поддерживается и правильно документировано, чем рассмотрим журнал DBAppender.

Как ни странно, предупреждение в javadocs об удалении JDBCAppender в будущих версиях log4j было написано мной.

Ответ 2

Вы можете использовать альтернативный appender, но на самом деле Log4j 1.2 будет вокруг и стандартным в течение длительного времени. Они разработали DBAppender как часть своих спутников-приемников, которые официально не выпущены, но вы можете загрузить исходный код и получить свой собственный опыт.

Если проблема с исключениями не регистрируется, JDBCAppender просто прекрасен. Любое дальнейшее обновление до версии 2.0 будет более радикальным, чем просто изменение JDBCAppender (если произойдет 2.0), поэтому я не стал бы беспокоиться об использовании его, несмотря на предупреждение. У них явно нет четкой дорожной карты или временной шкалы для введения новой версии, а версия 1.2.15 была выпущена в 2007 году.

Ответ 3

    **log4j.properties file**

    # Define the root logger with appender file
    log4j.rootLogger = DEBUG, DB

    # Define the DB appender
    log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender

    # Set JDBC URL
    log4j.appender.DB.URL=jdbc:mysql://localhost/log

    # Set Database Driver
    log4j.appender.DB.driver=com.mysql.jdbc.Driver

    # Set database user name and password
    log4j.appender.DB.user=root
    log4j.appender.DB.password=root

    # Set the SQL statement to be executed.
    log4j.appender.DB.sql=INSERT INTO actionlg(user_id, dated, logger, level, message) values('%X{userId}',' %d{yyyy-MM-dd-HH-mm}','%C','%p','%m')

    # Define the layout for file appender
    log4j.appender.DB.layout=org.apache.log4j.PatternLayout

  **Java Class**  
    Log4jExamples.java
    import java.sql.*;
    import java.io.*;

    import org.apache.log4j.Logger;
    import org.apache.log4j.MDC;


    public class Log4jExample {
           /* Get actual class name to be printed on */
           static Logger log = Logger.getLogger(Log4jExample.class.getName());
           public static void main(String[] args)throws IOException,SQLException{
              log.error("Error");
              MDC.put("userId", "1234");
           }
    }

    **libs required**
     - mysql-connector-java-3.1.8-bin.jar 
     - log4j-1.2.17.jar