@Override public Result filter(LogEvent event) { boolean excludeMatches = (loggingMode == OperationLog.LoggingLevel.VERBOSE); String logLevel = event.getContextMap().get(LogUtils.OPERATIONLOG_LEVEL_KEY); logLevel = logLevel == null ? "" : logLevel; OperationLog.LoggingLevel currentLoggingMode = OperationLog.getLoggingLevel(logLevel); // If logging is disabled, deny everything. if (currentLoggingMode == OperationLog.LoggingLevel.NONE) { return Result.DENY; } // Look at the current session's setting // and set the pattern and excludeMatches accordingly. if (currentLoggingMode != loggingMode) { loggingMode = currentLoggingMode; excludeMatches = (loggingMode == OperationLog.LoggingLevel.VERBOSE); setCurrentNamePattern(loggingMode); } boolean isMatch = namePattern.matcher(event.getLoggerName()).matches(); if (excludeMatches == isMatch) { // Deny if this is black-list filter (excludeMatches = true) and it // matched or if this is whitelist filter and it didn't match return Result.DENY; } return Result.NEUTRAL; }
@SuppressWarnings("deprecation") @Test public void testCreateEventInitFieldsProperly() throws Exception { final ReusableLogEventFactory factory = new ReusableLogEventFactory(); final LogEvent event = callCreateEvent(factory, "logger", Level.INFO, new SimpleMessage("xyz"), null); try { assertNotNull(event.getContextMap()); assertNotNull(event.getContextData()); assertNotNull(event.getContextStack()); } finally { ReusableLogEventFactory.release(event); } }
@SuppressWarnings("deprecation") static void assertEqualLogEvents(final LogEvent expected, final LogEvent actual, final boolean includeSource, final boolean includeContext, final boolean includeStacktrace) { assertEquals(expected.getClass(), actual.getClass()); assertEquals(includeContext ? expected.getContextData() : ContextDataFactory.createContextData(), actual.getContextData()); assertEquals(includeContext ? expected.getContextMap() : Collections.EMPTY_MAP, actual.getContextMap()); assertEquals(expected.getContextStack(), actual.getContextStack()); assertEquals(expected.getLevel(), actual.getLevel()); assertEquals(expected.getLoggerName(), actual.getLoggerName()); assertEquals(expected.getLoggerFqcn(), actual.getLoggerFqcn()); assertEquals(expected.getMarker(), actual.getMarker()); assertEquals(expected.getMessage(), actual.getMessage()); assertEquals(expected.getTimeMillis(), actual.getTimeMillis()); assertEquals(includeSource ? expected.getSource() : null, actual.getSource()); assertEquals(expected.getThreadName(), actual.getThreadName()); assertNotNull("original should have an exception", expected.getThrown()); assertNull("exception should not be serialized", actual.getThrown()); if (includeStacktrace) { // TODO should compare the rest of the ThrowableProxy assertEquals(expected.getThrownProxy(), actual.getThrownProxy()); } assertEquals(expected.isEndOfBatch(), actual.isEndOfBatch()); assertEquals(expected.isIncludeLocation(), actual.isIncludeLocation()); // original: non-null thrown & null thrownProxy // deserialized: null thrown & non-null thrownProxy assertNotEquals(expected.hashCode(), actual.hashCode()); assertNotEquals(expected, actual); }
@SuppressWarnings("deprecation") private void compareLogEvents(final LogEvent orig, final LogEvent changed) { // Ensure that everything but the Mapped Data is still the same assertEquals("LoggerName changed", orig.getLoggerName(), changed.getLoggerName()); assertEquals("Marker changed", orig.getMarker(), changed.getMarker()); assertEquals("FQCN changed", orig.getLoggerFqcn(), changed.getLoggerFqcn()); assertEquals("Level changed", orig.getLevel(), changed.getLevel()); assertArrayEquals("Throwable changed", orig.getThrown() == null ? null : orig.getThrownProxy().getExtendedStackTrace(), changed.getThrown() == null ? null : changed.getThrownProxy().getExtendedStackTrace() ); assertEquals("ContextMap changed", orig.getContextMap(), changed.getContextMap()); assertEquals("ContextData changed", orig.getContextData(), changed.getContextData()); assertEquals("ContextStack changed", orig.getContextStack(), changed.getContextStack()); assertEquals("ThreadName changed", orig.getThreadName(), changed.getThreadName()); assertEquals("Source changed", orig.getSource(), changed.getSource()); assertEquals("Millis changed", orig.getTimeMillis(), changed.getTimeMillis()); } }
assertEquals(evt.getMessage(), actual.getMessage()); assertEquals(evt.getThrown(), actual.getThrown()); assertEquals(evt.getContextMap(), actual.getContextMap()); assertEquals(evt.getContextData(), actual.getContextData()); assertEquals(evt.getContextStack(), actual.getContextStack());
@Override public Map getProperties() { return event.getContextMap(); }
@Override public String getMdcValue(String mdcName) { Map<String, String> mdcPropertyMap = logEvent.getContextMap(); if (null != mdcPropertyMap && mdcPropertyMap.containsKey(mdcName)) { return mdcPropertyMap.get(mdcName); } return null; }
private Set<String> getAllMdcNames() { Set<String> mdcNames = new HashSet<String>(); mdcNames.addAll(logEvent.getContextMap().keySet()); return mdcNames; }
@Override public String getMdcValue(String mdcName) { Map<String, String> mdcPropertyMap = logEvent.getContextMap(); if (null != mdcPropertyMap && mdcPropertyMap.containsKey(mdcName)) { return mdcPropertyMap.get(mdcName); } return null; }
@Override public String getMdcValue(String mdcName) { Map<String, String> mdcPropertyMap = logEvent.getContextMap(); if (null != mdcPropertyMap && mdcPropertyMap.containsKey(mdcName)) { return mdcPropertyMap.get(mdcName); } return null; }
private Set<String> getAllMdcNames() { Set<String> mdcNames = new HashSet<String>(); mdcNames.addAll(logEvent.getContextMap().keySet()); return mdcNames; }
private Set<String> getAllMdcNames() { Set<String> mdcNames = new HashSet<String>(); mdcNames.addAll(logEvent.getContextMap().keySet()); return mdcNames; }
@Override public void format(LogEvent event, StringBuilder toAppendTo) { converter.convert(event.getContextMap(), toAppendTo); }
/** * Gets the context map. Annotated with {@code @Convert(converter = ContextMapAttributeConverter.class)}. * * @return the context map. * @see ContextMapAttributeConverter * @see org.apache.logging.log4j.core.appender.db.jpa.converter.ContextMapJsonAttributeConverter */ @SuppressWarnings("deprecation") @Override @Convert(converter = ContextMapAttributeConverter.class) public Map<String, String> getContextMap() { return this.getWrappedEvent().getContextMap(); }
@Override public Map<String, String> getCustomParameters() { Map<String, String> metaData = new HashMap<String, String>(); metaData.put("SourceType", "Log4j"); addLogEventProperty("LoggerName", logEvent.getLoggerName(), metaData); addLogEventProperty("LoggingLevel", logEvent.getLevel() != null ? logEvent.getLevel().name() : null, metaData); addLogEventProperty("ThreadName", logEvent.getThreadName(), metaData); addLogEventProperty("TimeStamp", getFormattedDate(logEvent.getTimeMillis()), metaData); if (isException()) { addLogEventProperty("Logger Message", getMessage(), metaData); } if (logEvent.isIncludeLocation()) { StackTraceElement stackTraceElement = logEvent.getSource(); addLogEventProperty("ClassName", stackTraceElement.getClassName(), metaData); addLogEventProperty("FileName", stackTraceElement.getFileName(), metaData); addLogEventProperty("MethodName", stackTraceElement.getMethodName(), metaData); addLogEventProperty("LineNumber", String.valueOf(stackTraceElement.getLineNumber()), metaData); } for (Map.Entry<String, String> entry : logEvent.getContextMap().entrySet()) { addLogEventProperty(entry.getKey(), entry.getValue(), metaData); } // TODO: Username, domain and identity should be included as in .NET version. // TODO: Should check, seems that it is not included in Log4j2. return metaData; }
if (event.getContextMap() != null && !event.getContextMap().isEmpty()) { for (Map.Entry<String, String> entry : event.getContextMap().entrySet()) { json.put("logctx.map." + entry.getKey(), entry.getValue());
for (Map.Entry<String, String> entry : event.getContextMap().entrySet()) { builder.additionalField(entry.getKey(), entry.getValue());
if (event.getContextMap() != null) { for (Map.Entry<String, String> contextEntry : event.getContextMap().entrySet()) { if (Sentry.getStoredClient().getMdcTags().contains(contextEntry.getKey())) { eventBuilder.withTag(contextEntry.getKey(), contextEntry.getValue());
if (event.getContextMap() != null) { for (Map.Entry<String, String> contextEntry : event.getContextMap().entrySet()) { if (extraTags.contains(contextEntry.getKey())) { eventBuilder.withTag(contextEntry.getKey(), contextEntry.getValue());