@Test public void testJsonEscaping() throws Exception { final LogEvent event = Log4jLogEvent.newBuilder() .setLoggerName(getClass().getName()) .setLevel(Level.DEBUG) .setMessage(new SimpleMessage("This string contains \"quotes\" and \\ backslash and \u001F control and\nnewline")) .build(); final String expected = "This string contains \\\"quotes\\\" and \\\\ backslash and \\u001F control and\\nnewline"; final StringBuilder sb = new StringBuilder(); final LoggerContext ctx = LoggerContext.getContext(); final String[] options = new String[]{"%msg", "JSON"}; final EncodingPatternConverter converter = EncodingPatternConverter.newInstance(ctx.getConfiguration(), options); assertNotNull("Error creating converter", converter); converter.format(event, sb); assertEquals(expected, sb.toString()); }
@Test public void testXmlEscaping() { final LogEvent event = Log4jLogEvent.newBuilder() // .setLoggerName(EncodingPatternConverterTest.class.getName()) // .setLevel(Level.DEBUG) // .setMessage(new SimpleMessage("Test \r\n<div class=\"test\">this</div> & <div class='test'>that</div>")) .build(); final StringBuilder sb = new StringBuilder(); final LoggerContext ctx = LoggerContext.getContext(); final String[] options = new String[]{"%msg", "XML"}; final EncodingPatternConverter converter = EncodingPatternConverter .newInstance(ctx.getConfiguration(), options); assertNotNull("Error creating converter", converter); converter.format(event, sb); assertEquals( "Test \r\n<div class="test">this</div> & <div class='test'>that</div>", sb.toString()); }
@Test public void testCrlfEscaping() { final LogEvent event = Log4jLogEvent.newBuilder() // .setLoggerName(EncodingPatternConverterTest.class.getName()) // .setLevel(Level.DEBUG) // .setMessage(new SimpleMessage("Test \r\n<div class=\"test\">this\r</div> & \n<div class='test'>that</div>")) .build(); final StringBuilder sb = new StringBuilder(); final LoggerContext ctx = LoggerContext.getContext(); final String[] options = new String[]{"%msg", "CRLF"}; final EncodingPatternConverter converter = EncodingPatternConverter .newInstance(ctx.getConfiguration(), options); assertNotNull("Error creating converter", converter); converter.format(event, sb); assertEquals( "Test \\r\\n<div class=\"test\">this\\r</div> & \\n<div class='test'>that</div>", sb.toString()); }
@Test public void testReplacement() { final LogEvent event = Log4jLogEvent.newBuilder() // .setLoggerName(EncodingPatternConverterTest.class.getName()) // .setLevel(Level.DEBUG) // .setMessage(new SimpleMessage("Test \r\n<div class=\"test\">this</div> & <div class='test'>that</div>")) .build(); final StringBuilder sb = new StringBuilder(); final LoggerContext ctx = LoggerContext.getContext(); final String[] options = new String[]{"%msg"}; final EncodingPatternConverter converter = EncodingPatternConverter .newInstance(ctx.getConfiguration(), options); assertNotNull("Error creating converter", converter); converter.format(event, sb); assertEquals( "Test \\r\\n<div class="test">this</div> & <div class='test'>that</div>", sb.toString()); }