10:17

Como Usar Log4j en Netbeans 6.7 ( salida a PostgresSQL )



Para ver como usar Log4j en Netbeans: addLog4J


1) Como Instalo el Driver para conectar con Postgres ?

Hay que bajar el driver JDBC Postgres: Bajar

Desde Netbeans presionamos el botón derecho del mouse sobre la carpeta "Libraries" de nuestro proyecto. Seleccionamos "Add JAR/Folder..." y elegimos el archivo "postgresql-8.4-701.jdbc4.jar" que acabamos de bajar hace instantes.

Netbeans incorporará este nuevo .jar a nuestro proyecto.




2) Como creo la base de datos en Postgres?

Se supone que PostgresSql ya esta instalado

Abrimos pgAmin III, seleccionamos una base de datos, en el menu "Herramientas" ejecutamos "Herramienta de Consultas"

En el Editor SQL del Query ejecutamos

CREATE DATABASE midb

Configuramos una nueva conexion para ubicarla en la base de datos creada recien y luego ejecutamos lo siguiente:


CREATE TABLE "Log"
(
"ID" serial NOT NULL,
"OBJETO" character varying(50),
"PRIORIDAD" character varying(50),
"FECHA" character varying(50),
"MENSAJE" character varying(50),
CONSTRAINT "Log_pkey" PRIMARY KEY ("ID")
)


Ya tenesmo creada nuestra base de datos y la tabla donde se almacenan los mensajes.



3) Como hago el archivo de Configuración?

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
"Log4jPostgres" y presionamos el botón finish.

Netbeans nos abre automaticamente el archivo Log4jPostgres.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:postgresql://localhost:5432/midb
#Configuramos el driver
log4j.appender.DB.driver=org.postgresql.Driver
#usuario de la base de datos (cambiar el usuario por el que corresponda)
log4j.appender.DB.user=usuario
#Contraseña de la base de datos (cambiar la contraseña por la que corresponda)
log4j.appender.DB.password=contraseña
#Configuramos el Layout
log4j.appender.DB.layout=org.apache.log4j.PatternLayout
#Consulat SQL - El DEFAULT es porque el ID es SERIAL
log4j.appender.DB.sql=INSERT INTO public."Log" VALUES (DEFAULT,'%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("Log4jPostgres.properties");

Despúes cargamos el archivo de configuración

PropertyConfigurator.configure(url);


Aca les dejo el método listo para copiar:

public static void log4jPostgres(){

URL url = Main.class.getResource("Log4jPostgres.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.log4jPostgres();
}


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

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




Espero que les sea útil

0 comentarios:

Publicar un comentario