use of org.apache.logging.log4j.Level in project logging-log4j2 by apache.
the class LogEventFixture method createFullLogEvent.
private static LogEvent createFullLogEvent(final String id, final long timeMillis) {
// Create exception.
final Exception sourceHelper = new Exception();
sourceHelper.fillInStackTrace();
final Exception cause = new NullPointerException("testNPEx-" + id);
sourceHelper.fillInStackTrace();
final StackTraceElement source = sourceHelper.getStackTrace()[0];
final IOException ioException = new IOException("testIOEx-" + id, cause);
ioException.addSuppressed(new IndexOutOfBoundsException("I am suppressed exception 1" + id));
ioException.addSuppressed(new IndexOutOfBoundsException("I am suppressed exception 2" + id));
// Create rest of the event attributes.
final SimpleMessage message = new SimpleMessage("full LogEvent message " + id);
final StringMap contextData = createContextData(id);
final ThreadContextStack contextStack = createContextStack(id);
final int threadId = id.hashCode();
final String threadName = "MyThreadName" + id;
final int threadPriority = threadId % 10;
final Level level = Level.DEBUG;
final String loggerFqcn = "f.q.c.n" + id;
final String loggerName = "a.B" + id;
final long nanoTime = timeMillis * 2;
// Create the event.
return Log4jLogEvent.newBuilder().setLoggerName(loggerName).setLoggerFqcn(loggerFqcn).setLevel(level).setMessage(message).setThrown(ioException).setContextData(contextData).setContextStack(contextStack).setThreadId(threadId).setThreadName(threadName).setThreadPriority(threadPriority).setSource(source).setTimeMillis(timeMillis).setNanoTime(nanoTime).build();
}
use of org.apache.logging.log4j.Level in project logging-log4j2 by apache.
the class JsonTemplateLayoutTest method test_PatternResolver.
@Test
void test_PatternResolver() {
// Create the event template.
final String eventTemplate = writeJson(asMap("message", asMap("$resolver", "pattern", "pattern", "%p:%m")));
// Create the layout.
final JsonTemplateLayout layout = JsonTemplateLayout.newBuilder().setConfiguration(CONFIGURATION).setEventTemplate(eventTemplate).build();
// Create the log event.
final SimpleMessage message = new SimpleMessage("foo");
final Level level = Level.FATAL;
final LogEvent logEvent = Log4jLogEvent.newBuilder().setLoggerName(LOGGER_NAME).setMessage(message).setLevel(level).build();
// Check the serialized event.
usingSerializedLogEventAccessor(layout, logEvent, accessor -> {
final String expectedMessage = String.format("%s:%s", level, message.getFormattedMessage());
assertThat(accessor.getString("message")).isEqualTo(expectedMessage);
});
}
use of org.apache.logging.log4j.Level in project logging-log4j2 by apache.
the class JsonTemplateLayoutTest method test_event_template_additional_fields.
@Test
void test_event_template_additional_fields() {
// Create the log event.
final SimpleMessage message = new SimpleMessage("Hello, World!");
final RuntimeException exception = NonAsciiUtf8MethodNameContainingException.INSTANCE;
final Level level = Level.ERROR;
final LogEvent logEvent = Log4jLogEvent.newBuilder().setLoggerName(LOGGER_NAME).setLevel(level).setMessage(message).setThrown(exception).build();
// Create the event template.
final String eventTemplate = "{}";
// Create the layout.
final EventTemplateAdditionalField[] additionalFields = { EventTemplateAdditionalField.newBuilder().setKey("number").setValue("1").setFormat(EventTemplateAdditionalField.Format.JSON).build(), EventTemplateAdditionalField.newBuilder().setKey("string").setValue("foo").build(), EventTemplateAdditionalField.newBuilder().setKey("level").setValue("{\"$resolver\": \"level\", \"field\": \"name\"}").setFormat(EventTemplateAdditionalField.Format.JSON).build() };
final JsonTemplateLayout layout = JsonTemplateLayout.newBuilder().setConfiguration(CONFIGURATION).setStackTraceEnabled(true).setEventTemplate(eventTemplate).setEventTemplateAdditionalFields(additionalFields).build();
// Check the serialized event.
usingSerializedLogEventAccessor(layout, logEvent, accessor -> {
assertThat(accessor.getInteger("number")).isEqualTo(1);
assertThat(accessor.getString("string")).isEqualTo("foo");
assertThat(accessor.getString("level")).isEqualTo(level.name());
});
}
use of org.apache.logging.log4j.Level in project logging-log4j2 by apache.
the class StatusLogger method registerListener.
/**
* Registers a new listener.
*
* @param listener The StatusListener to register.
*/
public void registerListener(final StatusListener listener) {
listenersLock.writeLock().lock();
try {
listeners.add(listener);
final Level lvl = listener.getStatusLevel();
if (listenersLevel < lvl.intLevel()) {
listenersLevel = lvl.intLevel();
}
} finally {
listenersLock.writeLock().unlock();
}
}
use of org.apache.logging.log4j.Level in project logging-log4j2 by apache.
the class AsyncQueueFullPolicyFactoryTest method testCreateDiscardingRouterThresholdLevelCustomizable.
@Test
public void testCreateDiscardingRouterThresholdLevelCustomizable() throws Exception {
System.setProperty(AsyncQueueFullPolicyFactory.PROPERTY_NAME_ASYNC_EVENT_ROUTER, AsyncQueueFullPolicyFactory.PROPERTY_VALUE_DISCARDING_ASYNC_EVENT_ROUTER);
for (final Level level : Level.values()) {
System.setProperty(AsyncQueueFullPolicyFactory.PROPERTY_NAME_DISCARDING_THRESHOLD_LEVEL, level.name());
assertEquals(level, ((DiscardingAsyncQueueFullPolicy) AsyncQueueFullPolicyFactory.create()).getThresholdLevel());
}
}
Aggregations