@Override protected Closeable addContextToMDC(StartTLSRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "START_TLS") .build(); } }
public <T> T execute(Supplier<T> supplier) { return MDCBuilder.withMdc(this, supplier); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkNotNull(request); Preconditions.checkNotNull(clientId); Preconditions.checkNotNull(mailboxSession); Preconditions.checkArgument(request instanceof GetFilterRequest); GetFilterRequest filterRequest = (GetFilterRequest) request; return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "GET_FILTER") .wrapArround(() -> process(clientId, mailboxSession, filterRequest))); }
@Test void addContextShouldAllowRecursiveBuild() { assertThat( MDCBuilder.create() .addContext(KEY_1, VALUE_1) .addContext(MDCBuilder.create() .addContext(KEY_2, VALUE_2)) .buildContextMap()) .containsOnlyKeys(KEY_1, KEY_2) .containsEntry(KEY_1, VALUE_1) .containsEntry(KEY_2, VALUE_2); }
private static MDCBuilder from(Session session) { return Optional.ofNullable(session) .map(s -> MDCBuilder.create() .addContext(MDCBuilder.USER, s.getUser())) .orElse(MDCBuilder.create()); } }
private void runWithMdc(TaskExecutionDetails executionDetails, Task task, Consumer<TaskId> callback) { MDCBuilder.withMdc( MDCBuilder.create() .addContext(Task.TASK_ID, executionDetails.getTaskId()) .addContext(Task.TASK_TYPE, executionDetails.getType()) .addContext(Task.TASK_DETAILS, executionDetails.getAdditionalInformation()), () -> run(executionDetails, task, callback)); }
@Test public void buildContextMapShouldReturnEmptyWhenNoContext() { assertThat(MDCBuilder.create().buildContextMap()) .isEmpty(); }
@Override public StructuredLogger addField(String name, Object value) { mdcBuilder.addContext(name, value); return this; }
public MDCStructuredLogger(Logger logger) { this.logger = logger; this.mdcBuilder = MDCBuilder.create(); }
public static <T> T withMdc(MDCBuilder mdcBuilder, Supplier<T> answerSupplier) { try (Closeable closeable = mdcBuilder.build()) { try { return answerSupplier.get(); } catch (RuntimeException e) { LOGGER.error("Got error, logging its context", e); throw e; } } catch (IOException e) { throw new RuntimeException(e); } }
public Closeable build() { return new Closeables( buildContextMap() .entrySet() .stream() .map(entry -> MDC.putCloseable(entry.getKey(), entry.getValue())) .collect(Guavate.toImmutableList())); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkArgument(request instanceof GetMailboxesRequest); GetMailboxesRequest mailboxesRequest = (GetMailboxesRequest) request; return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "GET_MAILBOXES") .addContext("accountId", mailboxesRequest.getAccountId()) .addContext("mailboxIds", mailboxesRequest.getIds()) .addContext("properties", mailboxesRequest.getProperties()) .wrapArround(() -> process(clientId, mailboxSession, mailboxesRequest))); }
@Test public void addContextShouldAllowRecursiveBuild() { assertThat( MDCBuilder.create() .addContext(KEY_1, VALUE_1) .addContext(MDCBuilder.create() .addContext(KEY_2, VALUE_2)) .buildContextMap()) .containsOnlyKeys(KEY_1, KEY_2) .containsEntry(KEY_1, VALUE_1) .containsEntry(KEY_2, VALUE_2); }
private static MDCBuilder from(Optional<SelectedMailbox> selectedMailbox) { return selectedMailbox .map(value -> MDCBuilder.create() .addContext("selectedMailbox", value.getPath().asString())) .orElse(MDCBuilder.create()); } }
@Test void buildContextMapShouldReturnEmptyWhenNoContext() { assertThat(MDCBuilder.create().buildContextMap()) .isEmpty(); }
@Override public StructuredLogger addField(String name, Object value) { mdcBuilder.addContext(name, value); return this; }
public MDCStructuredLogger(Logger logger) { this.logger = logger; this.mdcBuilder = MDCBuilder.create(); }
public static <T> T withMdc(MDCBuilder mdcBuilder, Supplier<T> answerSupplier) { try (Closeable closeable = mdcBuilder.build()) { try { return answerSupplier.get(); } catch (RuntimeException e) { LOGGER.error("Got error, logging its context", e); throw e; } } catch (IOException e) { throw new RuntimeException(e); } }
public Closeable build() { return new Closeables( buildContextMap() .entrySet() .stream() .map(entry -> MDC.putCloseable(entry.getKey(), entry.getValue())) .collect(Guavate.toImmutableList())); }
@Override protected Closeable addContextToMDC(NamespaceRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "NAMESPACE") .build(); } }