package de.huxhorn.lilith.debug; import de.huxhorn.lilith.logback.classic.NDC; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LogNdcRunnable extends AbstractDebugRunnable { private final Logger logger = LoggerFactory.getLogger(LogNdcRunnable.class); public LogNdcRunnable(int delay) { super(delay); } public void runIt() throws InterruptedException { if(logger.isInfoEnabled()) logger.info("Message before pushing to NDC."); sleep(); NDC.push("Message with parameters: {} {}", "foo", "bar"); if(logger.isInfoEnabled()) logger.info("Message after pushing to NDC."); sleep(); NDC.push("Another message with parameters: {} {}", "foo", "bar"); if(logger.isInfoEnabled()) logger.info("Message after pushing to NDC again."); sleep(); NDC.push("Simple message without parameters."); if(logger.isInfoEnabled()) logger.info("Message after pushing to NDC a third time."); sleep(); NDC.pop(); if(logger.isInfoEnabled()) logger.info("Message after popping the NDC once."); sleep(); NDC.pop(); if(logger.isInfoEnabled()) logger.info("Message after popping the NDC twice."); sleep(); NDC.pop(); if(logger.isInfoEnabled()) logger.info("Message after popping the NDC thrice."); sleep(); } }