Home / Class/ AbstractStructuredLoggingTests Class — spring-boot Architecture

AbstractStructuredLoggingTests Class — spring-boot Architecture

Architecture documentation for the AbstractStructuredLoggingTests class in AbstractStructuredLoggingTests.java from the spring-boot codebase.

Entity Profile

Relationship Graph

Source Code

core/spring-boot/src/test/java/org/springframework/boot/logging/logback/AbstractStructuredLoggingTests.java lines 51–129

@ExtendWith(MockitoExtension.class)
abstract class AbstractStructuredLoggingTests {

	static final Instant EVENT_TIME = Instant.ofEpochSecond(1719910193L);

	private static final JsonMapper JSON_MAPPER = new JsonMapper();

	private ThrowableProxyConverter throwableProxyConverter;

	private BasicMarkerFactory markerFactory;

	@Mock
	@SuppressWarnings("NullAway.Init")
	StructuredLoggingJsonMembersCustomizer<?> customizer;

	MockStructuredLoggingJsonMembersCustomizerBuilder<?> customizerBuilder = new MockStructuredLoggingJsonMembersCustomizerBuilder<>(
			() -> this.customizer);

	@BeforeEach
	void setUp() {
		this.markerFactory = new BasicMarkerFactory();
		this.throwableProxyConverter = new ThrowableProxyConverter();
		this.throwableProxyConverter.start();
	}

	@AfterEach
	void tearDown() {
		this.throwableProxyConverter.stop();
	}

	protected Marker getMarker(String name) {
		return this.markerFactory.getDetachedMarker(name);
	}

	protected ThrowableProxyConverter getThrowableProxyConverter() {
		return this.throwableProxyConverter;
	}

	protected Map<String, Object> map(Object... values) {
		assertThat(values.length).isEven();
		Map<String, Object> result = new HashMap<>();
		for (int i = 0; i < values.length; i += 2) {
			result.put(values[i].toString(), values[i + 1]);
		}
		return result;
	}

	protected List<KeyValuePair> keyValuePairs(Object... values) {
		assertThat(values.length).isEven();
		List<KeyValuePair> result = new ArrayList<>();
		for (int i = 0; i < values.length; i += 2) {
			result.add(new KeyValuePair(values[i].toString(), values[i + 1]));
		}
		return result;
	}

	protected static LoggingEvent createEvent() {
		return createEvent(null);
	}

	protected static LoggingEvent createEvent(@Nullable Throwable thrown) {
		LoggingEvent event = new LoggingEvent();
		event.setInstant(EVENT_TIME);
		event.setLevel(Level.INFO);
		event.setThreadName("main");
		event.setLoggerName("org.example.Test");
		event.setMessage("message");
		if (thrown != null) {
			event.setThrowableProxy(new ThrowableProxy(thrown));
		}
		return event;
	}

	protected Map<String, Object> deserialize(String json) {
		return JSON_MAPPER.readValue(json, new TypeReference<>() {
		});
	}

}

Domain

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free