protected void assertLogEvent(final LogEvent logEvent) { assertThat(logEvent, is(notNullValue())); assertThat(logEvent.getInstant().getEpochMillisecond(), equalTo(1493121664118L)); assertThat(logEvent.getThreadName(), equalTo("main")); assertThat(logEvent.getThreadId(), equalTo(1L)); assertThat(logEvent.getThreadPriority(), equalTo(5)); assertThat(logEvent.getLevel(), equalTo(Level.INFO)); assertThat(logEvent.getLoggerName(), equalTo("HelloWorld")); assertThat(logEvent.getMarker().getName(), equalTo("child")); assertThat(logEvent.getMarker().getParents()[0].getName(), equalTo("parent")); assertThat(logEvent.getMarker().getParents()[0].getParents()[0].getName(), equalTo("grandparent")); assertThat(logEvent.getMessage().getFormattedMessage(), equalTo("Hello, world!")); assertThat(logEvent.getThrown(), is(nullValue())); assertThat(logEvent.getThrownProxy().getMessage(), equalTo("error message")); assertThat(logEvent.getThrownProxy().getName(), equalTo("java.lang.RuntimeException")); assertThat(logEvent.getThrownProxy().getExtendedStackTrace()[0].getClassName(), equalTo("logtest.Main")); assertThat(logEvent.getLoggerFqcn(), equalTo("org.apache.logging.log4j.spi.AbstractLogger")); assertThat(logEvent.getContextStack().asList(), equalTo(Arrays.asList("one", "two"))); assertThat((String) logEvent.getContextData().getValue("foo"), equalTo("FOO")); assertThat((String) logEvent.getContextData().getValue("bar"), equalTo("BAR")); assertThat(logEvent.getSource().getClassName(), equalTo("logtest.Main")); } }
assertTrue("Incorrect event", event.getMessage().getFormattedMessage().equals("This is a test message")); assertTrue("Message not delivered via TCP", tcpTestServer.getCount() > 0); assertEquals(expectedUuidStr, event.getContextData().getValue(tcKey)); event = tcpTestServer.getQueue().poll(3, TimeUnit.SECONDS); assertNotNull("No event retrieved", event);
/** * Looks up the value from the ThreadContext Map. * @param event The current LogEvent. * @param key the key to be looked up, may be null * @return The value associated with the key. */ @Override public String lookup(final LogEvent event, final String key) { return event.getContextData().getValue(key); } }
private Result filter(final Level level, final ReadOnlyStringMap contextMap) { final String value = contextMap.getValue(key); if (value != null) { Level ctxLevel = levelMap.get(value); if (ctxLevel == null) { ctxLevel = defaultThreshold; } return level.isMoreSpecificThan(ctxLevel) ? onMatch : onMismatch; } return Result.NEUTRAL; }
/** * Looks up the value from the ThreadContext Map. * @param key the key to be looked up, may be null * @return The value associated with the key. */ @Override public String lookup(final String key) { return currentContextData().getValue(key); }
private static void appendSelectedKeys(final String[] keys, final ReadOnlyStringMap contextData, final StringBuilder toAppendTo) { // Print all the keys in the array that have a value. final StringBuilder sb = getStringBuilder(); sb.append("{"); for (int i = 0; i < keys.length; i++) { final String theKey = keys[i]; final Object value = contextData.getValue(theKey); if (value != null) { // !contextData.containskey(theKey) if (sb.length() > 1) { sb.append(", "); } sb.append(theKey).append('='); StringBuilders.appendValue(sb, value); } } sb.append('}'); toAppendTo.append(sb); trimToMaxSize(sb); }
/** * {@inheritDoc} */ @Override public void format(final LogEvent event, final StringBuilder toAppendTo) { if (key == null) { // if there is no additional options, we output every single Key/Value pair for the MDC toAppendTo.append('{'); event.getContextData().forEach(APPEND_EACH, toAppendTo); toAppendTo.append('}'); } else { // otherwise they just want a single key output final Object val = event.getContextData().getValue(key); if (val != null) { toAppendTo.append(val); } } }
protected boolean filter(final ReadOnlyStringMap data) { boolean match = false; for (int i = 0; i < map.size(); i++) { final String toMatch = data.getValue(map.getKeyAt(i)); match = toMatch != null && ((List<String>) map.getValueAt(i)).contains(toMatch); if ((!isAnd && match) || (isAnd && !match)) { break; } } return match; }
@Override public final boolean isTriggeringEvent(final LogEvent logEvent) { final String stepId = logEvent.getContextData().getValue(KEY_TEST_STEP_ID); if(null == stepId) { return false; } ThreadContext.put(KEY_TEST_STEP_ID, stepId); if(stepId.equals(lastStepId)) { return false; } else { lastStepId = stepId; manager.getFileName(); return true; } } }
@Override public final boolean isTriggeringEvent(final LogEvent logEvent) { final String stepId = logEvent.getContextData().getValue(KEY_STEP_ID); if (null == stepId) { return false; } ThreadContext.put(KEY_STEP_ID, stepId); if (stepId.equals(lastStepId)) { return false; } else { lastStepId = stepId; manager.getFileName(); return true; } } }
private Result filter() { boolean match = false; if (useMap) { ReadOnlyStringMap currentContextData = null; final IndexedReadOnlyStringMap map = getStringMap(); for (int i = 0; i < map.size(); i++) { if (currentContextData == null) { currentContextData = currentContextData(); } final String toMatch = currentContextData.getValue(map.getKeyAt(i)); match = toMatch != null && ((List<String>) map.getValueAt(i)).contains(toMatch); if ((!isAnd() && match) || (isAnd() && !match)) { break; } } } else { match = value.equals(currentContextData().getValue(key)); } return match ? onMatch : onMismatch; }
/** * {@inheritDoc} */ @Override public void format(final LogEvent event, final StringBuilder toAppendTo) { final ReadOnlyStringMap contextData = event.getContextData(); // if there is no additional options, we output every single // Key/Value pair for the MDC in a similar format to Hashtable.toString() if (full) { if (contextData == null || contextData.size() == 0) { toAppendTo.append("{}"); return; } appendFully(contextData, toAppendTo); } else { if (keys != null) { if (contextData == null || contextData.size() == 0) { toAppendTo.append("{}"); return; } appendSelectedKeys(keys, contextData, toAppendTo); } else if (contextData != null){ // otherwise they just want a single key output final Object value = contextData.getValue(key); if (value != null) { StringBuilders.appendValue(toAppendTo, value); } } } }