/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.core.web; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; /** Cleans up slf4j Mapped Diagnostic Context every time a request ends. * * If in your application you use MDC to collect data to add to log entries, * then you must be sure to clear all the MDC information when it is no longer * relevant, otherwise you have a local storage leak. * * This listener takes care of clearing the MDC, thus freeing the thread local * storage, after the request is finished. * * @author waabox (waabox[at]gmail[dot]com) */ public class MappedDiagnosticContextListener implements ServletRequestListener { /** The class logger.*/ private static Logger log = LoggerFactory.getLogger( MappedDiagnosticContextListener.class); /** {@inheritDoc}. */ public void requestInitialized(final ServletRequestEvent event) { log.trace("Entering requestInitialized"); log.trace("Leaving requestInitialized"); } /** {@inheritDoc}. */ public void requestDestroyed(final ServletRequestEvent event) { log.trace("Entering requestDestroyed"); MDC.clear(); log.trace("Leaving requestDestroyed"); } }