@Override public String convert(ILoggingEvent event) { StringBuilder appendTo = new StringBuilder(); converter.convert(event.getFormattedMessage(), appendTo); return appendTo.toString(); }
public JsonMessageConverter(String[] options) { super(WORD, WORD); if (options != null) { for (String option: options) { if (OPT_FLATTEN.equalsIgnoreCase(option)) { converter.setFlatten(true); } else if (OPT_ESCAPE.equalsIgnoreCase(option)) { converter.setEscape(true); } } } }
public void convert(String message, StringBuilder appendTo) { if (message != null) { String result; if (flatten) { result = flattenMsg(message); } else { result = message; } if (escape) { try { appendTo.append(JSON.std.asString(result)); } catch (Exception ex) { /* -- avoids substitute logger warnings on startup -- */ LoggerFactory.getLogger(DefaultMessageConverter.class).error("Conversion failed ", ex); appendTo.append(result); } } else { appendTo.append(result); } } else { appendTo.append("null"); } }
@Test public void testArrayMsgFlattened() { DefaultMessageConverter jmc = new DefaultMessageConverter(); jmc.setFlatten(true); assertThat(formatMsg(jmc, ARRAY_MSG), is(ARRAY_MSG.substring(1, ARRAY_MSG.length() - 1))); }
@Test public void testSimple() { DefaultMessageConverter jmc = new DefaultMessageConverter(); assertThat(formatMsg(jmc, TEST_MSG_NO_ARGS), is(TEST_MSG_NO_ARGS)); }
@Test public void testObjMsgFlattened() { DefaultMessageConverter jmc = new DefaultMessageConverter(); jmc.setFlatten(true); assertThat(formatMsg(jmc, OBJ_MSG), is(OBJ_MSG.substring(1, OBJ_MSG.length() - 1))); }
@Test public void testObjMsgNotFlattened() { DefaultMessageConverter jmc = new DefaultMessageConverter(); assertThat(formatMsg(jmc, OBJ_MSG), is(OBJ_MSG)); }
@Test public void testObjNestedBraces() { String nestedBracesMsg = "\"request\": \"/Foo(${bar})\""; String logMsg = " {" + nestedBracesMsg + "} "; DefaultMessageConverter jmc = new DefaultMessageConverter(); jmc.setFlatten(true); assertThat(formatMsg(jmc, logMsg), is(nestedBracesMsg)); }
@Override public void start() { List<String> options = getOptionList(); if (options != null) { for (String option: options) { if (OPT_FLATTEN.equalsIgnoreCase(option)) { converter.setFlatten(true); } else if (OPT_ESCAPE.equalsIgnoreCase(option)) { converter.setEscape(true); } } } super.start(); } }
@Override public void format(LogEvent event, StringBuilder toAppendTo) { converter.convert(event.getMessage().getFormattedMessage(), toAppendTo); } }
@Test public void testSimpleQuoted() { DefaultMessageConverter jmc = new DefaultMessageConverter(); String quotedMsg = TEST_MSG_NO_ARGS + " with a \"quote\""; assertThat(formatMsg(jmc, quotedMsg), is(quotedMsg)); }
public void convert(String message, StringBuilder appendTo) { if (message != null) { String result; if (flatten) { result = flattenMsg(message); } else { result = message; } if (escape) { try { appendTo.append(JSON.std.asString(result)); } catch (Exception ex) { /* -- avoids substitute logger warnings on startup -- */ LoggerFactory.getLogger(DefaultMessageConverter.class).error("Conversion failed ", ex); appendTo.append(result); } } else { appendTo.append(result); } } else { appendTo.append("null"); } }
@Test public void testInvalidObjNestedBraces() { String nestedBracesMsg = "\"request\": \"/Foo(${bar)\""; String logMsg = " {" + nestedBracesMsg; DefaultMessageConverter jmc = new DefaultMessageConverter(); jmc.setFlatten(true); assertThat(formatMsg(jmc, logMsg), is(logMsg)); }
protected String formatMsg(DefaultMessageConverter mc, String msg) { StringBuilder sb = new StringBuilder(); mc.convert(msg, sb); return sb.toString(); }
@Test public void testArrayMsgNotFlattened() { DefaultMessageConverter jmc = new DefaultMessageConverter(); assertThat(formatMsg(jmc, ARRAY_MSG), is(ARRAY_MSG)); }
@Test public void testObjNestedBrackets() { String nestedBracketsMsg = "\"request\", \"/Foo($[bar])\""; String logMsg = " [" + nestedBracketsMsg + "] "; DefaultMessageConverter jmc = new DefaultMessageConverter(); jmc.setFlatten(true); assertThat(formatMsg(jmc, logMsg), is(nestedBracketsMsg)); }
@Test public void testEscapedMessage() { DefaultMessageConverter jmc = new DefaultMessageConverter(); String strangeMsg = TEST_MSG_NO_ARGS + STRANGE_SEQ; assertThat(formatMsg(jmc, strangeMsg), is(strangeMsg)); }
@Test public void testObjIncompleteNestedBraces() { String nestedBracesMsg = "\"request\": \"/Foo(${bar)\""; String logMsg = " {" + nestedBracesMsg + "} "; DefaultMessageConverter jmc = new DefaultMessageConverter(); jmc.setFlatten(true); assertThat(formatMsg(jmc, logMsg), is(nestedBracesMsg)); }
@Test public void testNullMessage() { String logMsg = null; DefaultMessageConverter jmc = new DefaultMessageConverter(); assertThat(formatMsg(jmc, logMsg), is("null")); }
@Test public void testLogRecordMsgFlattened() { DefaultMessageConverter jmc = new DefaultMessageConverter(); jmc.setFlatten(true); RequestRecord lrec = new RequestRecord(LOG_PROVIDER); String lmsg = lrec.toString(); assertThat(formatMsg(jmc, lmsg), is(lmsg.substring(1, lmsg.length() - 1))); }