Question

Puisque dans log4j javadoc est

  

AVERTISSEMENT: Cette version de JDBCAppender est très susceptible d'être complètement remplacé à l'avenir. Moreoever, il ne se connecte pas d'exceptions.

Que dois-je faire pour vous connecter à une base de données?

Était-ce utile?

La solution

Si vous êtes à la recherche d'une appender de base de données qui fonctionne non seulement, mais soutient également la mise en commun de connexion, est maintenue et bien documenté, que de considérer de logback DBAppender .

Ironie du sort, l'avertissement dans les javadocs sur la suppression JDBCAppender dans les futures versions de log4j a été écrit par moi.

Autres conseils

Vous pouvez utiliser un alternatif appender, mais vraiment Log4j 1.2 va être autour et norme pendant longtemps. Ils ont développé DBAppender dans le cadre de leurs récepteurs compagnons, qui ne sont pas officiellement libérés, mais vous pouvez télécharger le code source et obtenir votre propre va aussi bien.

À moins que la question des exceptions non forestières vous dérange, JDBCAppender est très bien. Toute autre mise à niveau vers 2.0 va être plus radical qu'un simple changement JDBCAppender (si 2.0 arrive), je ne voudrais pas vous soucier de l'utiliser, en dépit de l'avertissement. Ils ont clairement ne pas une feuille de route solide ou calendrier pour l'introduction d'une nouvelle version, et 1.2.15 a été libéré en 2007.

    **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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top