@Test public void testIncludeNullDelimiterFalse() throws Exception { final AbstractJacksonLayout layout = JsonLayout.newBuilder() .setCompact(true) .setIncludeNullDelimiter(false) .build(); final String str = layout.toSerializable(LogEventFixtures.createLogEvent()); assertFalse(str.endsWith("\0")); }
@Test public void testIncludeNullDelimiterTrue() throws Exception { final AbstractJacksonLayout layout = JsonLayout.newBuilder() .setCompact(true) .setIncludeNullDelimiter(true) .build(); final String str = layout.toSerializable(LogEventFixtures.createLogEvent()); assertTrue(str.endsWith("\0")); }
.setPropertiesAsList(propertiesAsList) .setComplete(true) .setCompact(false) .setEventEol(false) .setHeader("[[".getBytes(Charset.defaultCharset()))
.setPropertiesAsList(contextMapAslist) .setComplete(false) .setCompact(compact) .setEventEol(eventEol) .setCharset(StandardCharsets.UTF_8)
.setPropertiesAsList(propertiesAsList) .setComplete(true) .setCompact(false) .setEventEol(false) .setIncludeStacktrace(true)
.setPropertiesAsList(propertiesAsList) .setComplete(false) .setCompact(true) .setEventEol(false) .setCharset(StandardCharsets.UTF_8)
@Test public void testLayoutLoggerName() throws Exception { final boolean propertiesAsList = false; // @formatter:off final AbstractJacksonLayout layout = JsonLayout.newBuilder() .setLocationInfo(false) .setProperties(false) .setPropertiesAsList(propertiesAsList) .setComplete(false) .setCompact(true) .setEventEol(false) .setCharset(StandardCharsets.UTF_8) .setIncludeStacktrace(true) .build(); // @formatter:on // @formatter:off final Log4jLogEvent expected = Log4jLogEvent.newBuilder() .setLoggerName("a.B") .setLoggerFqcn("f.q.c.n") .setLevel(Level.DEBUG) .setMessage(new SimpleMessage("M")) .setThreadName("threadName") .setTimeMillis(1).build(); // @formatter:on final String str = layout.toSerializable(expected); assertTrue(str, str.contains("\"loggerName\":\"a.B\"")); final Log4jLogEvent actual = new Log4jJsonObjectMapper(propertiesAsList, true, false, false).readValue(str, Log4jLogEvent.class); assertEquals(expected.getLoggerName(), actual.getLoggerName()); assertEquals(expected, actual); }
@Test public void testLayoutRingBufferEventReusableMessageWithCurlyBraces() throws Exception { final boolean propertiesAsList = false; final AbstractJacksonLayout layout = JsonLayout.newBuilder() .setLocationInfo(false) .setProperties(false) .setPropertiesAsList(propertiesAsList) .setComplete(false) .setCompact(true) .setEventEol(false) .setCharset(StandardCharsets.UTF_8) .setIncludeStacktrace(true) .build(); Message message = ReusableMessageFactory.INSTANCE.newMessage("Testing {}", new TestObj()); try { RingBufferLogEvent ringBufferEvent = new RingBufferLogEvent(); ringBufferEvent.setValues( null, "a.B", null, "f.q.c.n", Level.DEBUG, message, null, new SortedArrayStringMap(), ThreadContext.EMPTY_STACK, 1L, "threadName", 1, null, new SystemClock(), new DummyNanoClock()); final String str = layout.toSerializable(ringBufferEvent); final String expectedMessage = "Testing " + TestObj.TO_STRING_VALUE; assertThat(str, containsString("\"message\":\"" + expectedMessage + '"')); final Log4jLogEvent actual = new Log4jJsonObjectMapper(propertiesAsList, true, false, false).readValue(str, Log4jLogEvent.class); assertEquals(expectedMessage, actual.getMessage().getFormattedMessage()); } finally { ReusableMessageFactory.release(message); } }
@Test public void testAdditionalFields() throws Exception { final AbstractJacksonLayout layout = JsonLayout.newBuilder() .setLocationInfo(false) .setProperties(false) .setComplete(false) .setCompact(true) .setEventEol(false) .setIncludeStacktrace(false) .setAdditionalFields(new KeyValuePair[] { new KeyValuePair("KEY1", "VALUE1"), new KeyValuePair("KEY2", "${java:runtime}"), }) .setCharset(StandardCharsets.UTF_8) .setConfiguration(ctx.getConfiguration()) .build(); final String str = layout.toSerializable(LogEventFixtures.createLogEvent()); assertTrue(str, str.contains("\"KEY1\":\"VALUE1\"")); assertTrue(str, str.contains("\"KEY2\":\"" + new JavaLookup().getRuntime() + "\"")); }
private String prepareJSONForObjectMessageAsJsonObjectTests(final int value, final boolean objectMessageAsJsonObject) { final TestClass testClass = new TestClass(); testClass.setValue(value); // @formatter:off final Log4jLogEvent expected = Log4jLogEvent.newBuilder() .setLoggerName("a.B") .setLoggerFqcn("f.q.c.n") .setLevel(Level.DEBUG) .setMessage(new ObjectMessage(testClass)) .setThreadName("threadName") .setTimeMillis(1).build(); // @formatter:off final AbstractJacksonLayout layout = JsonLayout.newBuilder() .setCompact(true) .setObjectMessageAsJsonObject(objectMessageAsJsonObject) .build(); // @formatter:off return layout.toSerializable(expected); }
private String prepareJSONForStacktraceTests(final boolean stacktraceAsString) { final Log4jLogEvent expected = LogEventFixtures.createLogEvent(); // @formatter:off final AbstractJacksonLayout layout = JsonLayout.newBuilder() .setCompact(true) .setIncludeStacktrace(true) .setStacktraceAsString(stacktraceAsString) .build(); // @formatter:off return layout.toSerializable(expected); }