private static final Logger LOG = LoggerFactory.getLogger(MessagingMetricsProcessorService.class); private static final Logger PROGRESS_LOG = Loggers.sampling(LOG, LogSamplers.limitRate(60000));
private static final Logger LOG = LoggerFactory.getLogger(MessagingMetricsProcessorService.class); private static final Logger PROGRESS_LOG = Loggers.sampling(LOG, LogSamplers.limitRate(60000));
@Test public void testSamplingLogger() throws Exception { LoggerContext loggerContext = createLoggerContext("ALL", TestAppender.class.getName()); Logger logger = Loggers.sampling(loggerContext.getLogger("LoggerTest"), LogSamplers.onceEvery(10)); for (int i = 0; i < 100; i++) { logger.info("Testing " + i); } Appender<ILoggingEvent> appender = loggerContext.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME) .getAppender("Test"); Assert.assertTrue(appender instanceof TestAppender); List<ILoggingEvent> events = ((TestAppender) appender).getEvents(); Assert.assertEquals(10, events.size()); // Inspect the caller data, this class must be on top. for (ILoggingEvent event : events) { StackTraceElement[] callerData = event.getCallerData(); Assert.assertTrue(callerData.length > 0); Assert.assertEquals(getClass().getName(), callerData[0].getClassName()); } }