elastic / elastic/ecs-logging-java
Add support for custom MdcSerializer in EcsLayout
- Langage dominant
- Java
- Étoiles
- 148
- Forks
- 82
- Merge moyen
- 2 j 17 h
- PR mergées (30 j)
- 3
Description
### 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`
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par EcsLayout et suivez la manière dont MdcSerializer.Resolver sélectionne actuellement le sérialiseur. Comparez ce chemin avec la personnalisation existante pour ObjectMessageJacksonSerializer, puis définissez comment un MdcSerializer fourni par l’utilisateur serait configuré ou remplacé. Le travail est terminé lorsque EcsLayout utilise le sérialiseur personnalisé pour la sortie MDC tout en conservant le comportement par défaut actuel.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- backend, observability-sre
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100