EcsLayout from log4j2-ecs-layout currently uses a hardcoded implementation of MdcSerializer for MDC serialization. While this works well for most cases, it lacks flexibility for users with custom MDC serialization requirements.
I propose adding support for configuring or overriding the MdcSerializer implementation to accommodate specific use cases, such as:
Custom JSON structure for MDC fields.
Enhanced MDC sanitization or transformation logic.
Integrating additional logging contexts.
Problem Statement
The current implementation of MdcSerializer is resolved dynamically using MdcSerializer.Resolver. However, it does not allow users to provide their own MdcSerializer implementation.
Proposed Solution
Introduce a mechanism to customize the MdcSerializer, such as already implemented for ObjectMessageJacksonSerializer
Summary
EcsLayout
fromlog4j2-ecs-layout
currently uses a hardcoded implementation ofMdcSerializer
for MDC serialization. While this works well for most cases, it lacks flexibility for users with custom MDC serialization requirements.I propose adding support for configuring or overriding the
MdcSerializer
implementation to accommodate specific use cases, such as:Problem Statement
The current implementation of
MdcSerializer
is resolved dynamically usingMdcSerializer.Resolver
. However, it does not allow users to provide their ownMdcSerializer
implementation.Proposed Solution
Introduce a mechanism to customize the
MdcSerializer
, such as already implemented forObjectMessageJacksonSerializer