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 |