elastic / elastic/ecs-logging-java

Add support for custom MdcSerializer in EcsLayout

Abierto
#291 1 comentario 0 reacciones 0 asignados Ver en GitHub
agent-java community triage
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.