database - Inicie sesión en una base de datos utilizando log4j
logging jdbc (3)
Puedes usar un appender alternative , pero en realidad Log4j 1.2 será estándar durante mucho tiempo. Desarrollaron DBAppender como parte de sus compañeros receptores, que no se lanzó oficialmente, pero puedes descargar el código fuente y ponerlo en marcha también.
A menos que el problema de no registrar las excepciones le moleste, JDBCAppender está bien. Cualquier actualización adicional a 2.0 será más radical que solo cambiar JDBCAppender (si es que ocurre 2.0), así que no me preocuparía usarlo, a pesar de la advertencia. Claramente, no tienen una hoja de ruta sólida o una línea de tiempo para introducir una nueva versión, y la versión 1.2.15 se lanzó en 2007.
Como en log4j javadoc está
ADVERTENCIA: Es muy probable que esta versión de JDBCAppender se reemplace por completo en el futuro. Además, no registra excepciones.
¿Qué debo hacer para iniciar sesión en una base de datos?
Si está buscando un appender de base de datos que no solo funciona, sino que también es compatible con la agrupación de conexiones, se mantiene y se documenta adecuadamente, entonces considere el DBAppender de DBAppender .
Irónicamente, la advertencia en javadocs sobre la eliminación de JDBCAppender en futuras versiones de log4j fue escrita por mí.
**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