use of org.apache.logging.log4j.core.time.internal.SystemClock in project logging-log4j2 by apache.
the class ClockFactory method createClock.
private static Clock createClock() {
final String userRequest = PropertiesUtil.getProperties().getStringProperty(PROPERTY_NAME);
if (userRequest == null) {
LOGGER.trace("Using default SystemClock for timestamps.");
return logSupportedPrecision(new SystemClock());
}
final Supplier<Clock> specified = aliases().get(userRequest);
if (specified != null) {
LOGGER.trace("Using specified {} for timestamps.", userRequest);
return logSupportedPrecision(specified.get());
}
try {
final Clock result = Loader.newCheckedInstanceOf(userRequest, Clock.class);
LOGGER.trace("Using {} for timestamps.", result.getClass().getName());
return logSupportedPrecision(result);
} catch (final Exception e) {
final String fmt = "Could not create {}: {}, using default SystemClock for timestamps.";
LOGGER.error(fmt, userRequest, e);
return logSupportedPrecision(new SystemClock());
}
}
use of org.apache.logging.log4j.core.time.internal.SystemClock in project logging-log4j2 by apache.
the class JsonLayoutTest method testLayoutRingBufferEventReusableMessageWithCurlyBraces.
// Test for LOG4J2-2312 LOG4J2-2341
@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);
}
}
Aggregations