6:51

Como Usar Log4j en Netbeans 6.7 ( salida a MySql )



Para ver como usar Log4J en Netbeans: addLog4J

1) Como Instalo el Driver para conectar con MySql ?


Hay que bajar el driver JDBC mysql: Bajar

Luego desempaquetarlo y extraer el archivo "mysql-connector-java-3.1.14-bin.jar"

Desde Netbeans presionamos el botón derecho del mouse sobre la carpeta "Libraries" de nuestro proyecto. Seleccionamos "Add JAR/Folder..." y elegimos el archivo "mysql-connector-java-3.1.14-bin.jar" que descomprimimos hace instantes.

Netbeans incorporará este nuevo .jar a nuestro proyecto.




2) Como creo la base de datos en MySql?


Vamos a crear una base de datos "midb" y una tabla "Log" donde se almacenarán los mensajes

Se supone que ya tenemos instalado MySQL

Abrimos el MySql Query Browser (o desde la consola con MySql Monitor) y creamos primero la base de datos

CREATE DATABASE midb;


Luego creamos la tabla para almacenar los mensajes

CREATE TABLE `midb`.`log` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`OBJETO` varchar(50) DEFAULT NULL,
`PRIORIDAD` varchar(50) DEFAULT NULL,
`FECHA` varchar(50) DEFAULT NULL,
`MENSAJE` varchar(50) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;




3) Como hago el archivo de Configuración?


Para enviar la salida del Log4j a MySql vamos a utilizar un archivo .properties

En Netbeans apretamos el botón derecho del mouse sobre el paquete de nuestras clases seleccionamos New -> Other vamos a la carpeta Other y allí elegimos "Properties File" presionamos siguiente y modificamos el nombre para que quede
"Log4jMySql" y presionamos el botón finish.

Netbeans nos abre automaticamente el archivo Log4jMySql.properties, dentro de este archivo colocamos:



#Definimos granulidad y el nombre del logger
log4j.rootCategory= INFO, DB

#Configuramos el tipo de Appender
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender

#URL de la base de datos
log4j.appender.DB.URL=jdbc:mysql://localhost/midb

#Configuramos el driver
log4j.appender.DB.driver=com.mysql.jdbc.Driver

#usuario de la base de datos (colocar el usuario adecuado)
log4j.appender.DB.user=usuario

#Contraseña de la base de datos (colocar la contraseña adecuada)
log4j.appender.DB.password=contraseña

#Configuramos el Layout
log4j.appender.DB.layout=org.apache.log4j.PatternLayout

#Consulat SQL - El null es porque el ID es AUTO_INCREMENT
log4j.appender.DB.sql=INSERT INTO Log (ID,OBJETO,PRIORIDAD,FECHA,MENSAJE) VALUES (null,'%c','%p','%d','%m')




4) Como le digo a mi aplicación que use ese archivo de Configuración?


Creamos un método estático que va a ser llamado desde el main() de la aplicación

Primero obtenemos la url del archivo de configuración, como están en el mismo paquete que la clase Main (o la clase que usemos) lo podemos obtener con el método getResource().

URL url = Main.class.getResource("Log4jMySql.properties");

Despúes cargamos el archivo de configuración

PropertyConfigurator.configure(url);


Aca les dejo el método listo para copiar:

public static void log4jMySql(){

URL url = Main.class.getResource("Log4jMySql.properties");
PropertyConfigurator.configure(url);

logger.info("Entrando a la Aplicacion");
System.out.println("Mensaje por Consola");
logger.info("Saliendo de la Aplicacion");

}


Una clase Main completa para probar el ejemplo:


import java.net.URL;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;

public class Main {
static Logger logger = Logger.getLogger(Main.class);

public static void main(String[] args) {
Main.log4jMySql();
}


public static void log4jMySql(){
URL url = Main.class.getResource("Log4jMySql.properties");
PropertyConfigurator.configure(url);

logger.info("Entrando a la Aplicacion");
System.out.println("Mensaje por Consola");
logger.info("Saliendo de la Aplicacion");
}

}



Espero que le sirva a alguien.

0 comentarios:

Publicar un comentario