Introducción:
SLF4J como lo dice su nombre en inglés es una fachada (facade) que estandariza el formato de hacer logging (mensaje que entregan información a los desarrolladores), para poder intercambiar entre distintos tipos de implementaciones sin tener que realizar cambios en el código.
Configuración:
1.- Añadir el paquete slf4j-log4j12 en el classpath. En particular, yo lo he hecho con maven.
Lo anterior agrega las dependencias slf4j-api y log4j.
2.- Configurar persistence.xml y log4j.xml
persistence.xml:
En el cógigo anterior se listan los niveles de logging que existen en eclipselink. Luego, se define el nivel de "log" en FINE y finalmente se indica que "logger" se utilizará. En particular, indican 3 posibles alternativas.
3.- Finalmente, se debe implementar las clases que conectará el logger que se deseea utilizar con eclipselink. Por ejemplo, yo utilizé una creada por lukas
package cl.molavec.punto.db.eclipselink;
import org.eclipse.persistence.logging.AbstractSessionLog;
import org.eclipse.persistence.logging.SessionLog;
import org.eclipse.persistence.logging.SessionLogEntry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CustomSessionLogger extends AbstractSessionLog implements SessionLog {
public static final Logger LOG = LoggerFactory.getLogger(CustomSessionLogger.class);
public void log(SessionLogEntry sessionLogEntry) {
switch (sessionLogEntry.getLevel()) {
case SEVERE:
LOG.error(sessionLogEntry.getMessage());
break;
case WARNING:
LOG.warn(sessionLogEntry.getMessage());
break;
case INFO:
LOG.info(sessionLogEntry.getMessage());
break;
case FINE:
LOG.info(sessionLogEntry.getMessage());
break;
default:
LOG.debug(sessionLogEntry.getMessage());
}
}
}
aunque también es posible utilizar otras como las que se ofrecen en el tutorial para usar log4j con eclipselink.
| The End |
