Pregunta

Dado que en log4j javadoc es

  

ADVERTENCIA: Esta versión de JDBCAppender es muy probable que sea reemplazado por completo en el futuro. Moreoever, que no registra excepciones.

¿Qué debo hacer para conectarse a una base de datos?

¿Fue útil?

Solución

Si usted está buscando un appender base de datos que no sólo funciona, sino que también es compatible con la agrupación de conexiones, se mantiene y debidamente documentado, que cuenta logback de DBAppender .

Irónicamente, la advertencia en los javadocs sobre la eliminación de JDBCAppender en futuras versiones de log4j fue escrito por mí.

Otros consejos

Puede utilizar un appender alternativa, pero realmente Log4J 1.2 va a ser alrededor y estándar por mucho tiempo. Desarrollaron DBAppender como parte de sus compañeros receptores, que no se libere oficialmente, pero se puede descargar el código fuente y obtener su propio ir también.

A menos que la cuestión de las excepciones no madereras le molesta, JDBCAppender está muy bien. Cualquier actualización a 2.0 va a ser más radical que simplemente cambiar JDBCAppender (si sucede 2.0), por lo que no habría que preocuparse de usar, a pesar de la advertencia. Que claramente no tienen una hoja de ruta sólida o línea de tiempo para la introducción de una nueva versión, y 1.2.15 fue puesto en libertad 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top