elastic / elastic/ecs-logging-java
Add support for custom MdcSerializer in EcsLayout
- Lenguaje dominante
- Java
- Estrellas
- 148
- Forks
- 82
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 3
Descripción
### Summary
`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`
Guía de contribución
Línea de trabajo
Empieza por EcsLayout y sigue cómo MdcSerializer.Resolver selecciona actualmente el serializador. Compara ese recorrido con la personalización existente para ObjectMessageJacksonSerializer y, a continuación, define cómo se configuraría o sobrescribiría un MdcSerializer proporcionado por el usuario. Se considera terminado cuando EcsLayout utiliza el serializador personalizado para la salida de MDC y mantiene el comportamiento predeterminado actual.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- backend, observability-sre
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100