@Test public void tException() throws InterruptedException { int port = RandomUtil.getRandomServerPort(); MockSyslogServer mockServer = new MockSyslogServer(21, port); mockServer.start(); // give MockSyslogServer head start Thread.sleep(100); LoggerContext lc = new LoggerContext(); lc.setName("test"); SyslogAppender sa = new SyslogAppender(); sa.setContext(lc); sa.setSyslogHost("localhost"); sa.setFacility("MAIL"); sa.setPort(port); sa.setSuffixPattern("[%thread] %logger %msg"); sa.start(); assertTrue(sa.isStarted()); String loggerName = this.getClass().getName(); Logger logger = lc.getLogger(loggerName); logger.addAppender(sa); String logMsg = "hello"; String exMsg = "just testing"; Exception ex = new Exception(exMsg); logger.debug(logMsg, ex); // StatusPrinter.print(lc.getStatusManager()); // wait max 2 seconds for mock server to finish. However, it should // much sooner than that. mockServer.join(8000); assertTrue(mockServer.isFinished()); // message + 20 lines of stacktrace assertEquals(21, mockServer.getMessageList().size()); // int i = 0; // for (String line: mockServer.msgList) { // System.out.println(i++ + ": " + line); // } String msg = mockServer.getMessageList().get(0); String expected = "<" + (SyslogConstants.LOG_MAIL + SyslogConstants.DEBUG_SEVERITY) + ">"; assertTrue(msg.startsWith(expected)); String expectedPrefix = "<\\d{2}>\\w{3} \\d{2} \\d{2}(:\\d{2}){2} [\\w.-]* "; String threadName = Thread.currentThread().getName(); String regex = expectedPrefix + "\\[" + threadName + "\\] " + loggerName + " " + logMsg; checkRegexMatch(msg, regex); }
@Test public void basic() throws InterruptedException { int port = RandomUtil.getRandomServerPort(); MockSyslogServer mockServer = new MockSyslogServer(1, port); mockServer.start(); // give MockSyslogServer head start Thread.sleep(100); LoggerContext lc = new LoggerContext(); lc.setName("test"); SyslogAppender sa = new SyslogAppender(); sa.setContext(lc); sa.setSyslogHost("localhost"); sa.setFacility("MAIL"); sa.setPort(port); sa.setSuffixPattern("[%thread] %logger %msg"); sa.start(); assertTrue(sa.isStarted()); String loggerName = this.getClass().getName(); Logger logger = lc.getLogger(loggerName); logger.addAppender(sa); String logMsg = "hello"; logger.debug(logMsg); // wait max 2 seconds for mock server to finish. However, it should // much sooner than that. mockServer.join(8000); assertTrue(mockServer.isFinished()); assertEquals(1, mockServer.getMessageList().size()); String msg = mockServer.getMessageList().get(0); String threadName = Thread.currentThread().getName(); String expected = "<" + (SyslogConstants.LOG_MAIL + SyslogConstants.DEBUG_SEVERITY) + ">"; assertTrue(msg.startsWith(expected)); String first = "<\\d{2}>\\w{3} \\d{2} \\d{2}(:\\d{2}){2} [\\w.-]* "; checkRegexMatch(msg, first + "\\[" + threadName + "\\] " + loggerName + " " + logMsg); }