Documentation
Presets de templates de logs
Rendez des logs structurés avec des presets réutilisables et des surcharges locales.
Quand utiliser cet exemple
Utilisez ce pattern quand les services émettent des logs JSON ou logfmt structurés et que les lignes brutes sont trop bruitées pour le travail quotidien dans le terminal.
Exemple
[global]
log_mode = "both"
log_format = "json"
[log_templates.rust]
[log_templates.rust.fields]
[[log_templates.rust.fields.fields]]
key = "level"
prefix = "["
suffix = "]"
map = { info = "INFO", warn = "WARN", error = "ERROR" }
color = "gold"
color_rules = [
{ regex = "^ERROR$", color = "red" },
{ regex = "^WARN$", color = "yellow" },
{ regex = "^INFO$", color = "green" },
]
[[log_templates.rust.fields.fields]]
key = "fields.message"
color = "mintcream"
[log_templates.email]
[log_templates.email.fields]
[[log_templates.email.fields.fields]]
key = "level"
prefix = "["
suffix = "]"
map = { info = "INFO", warn = "WARN", error = "ERROR" }
color = "gold"
[[log_templates.email.fields.fields]]
key = "fields.message"
color = "mintcream"
[[log_templates.email.fields.fields]]
prefix = "to "
key = "fields.to"
color = "brown"
[global.log_template]
stdout_preset = "rust"
stderr_preset = "rust"
[[process]]
name = "api-public"
command = "./tools/run_service.sh api-public"
[[process]]
name = "notifications-email-send"
command = "./tools/run_service.sh notifications-email-send"
[process.log_template]
stdout_preset = "email"
stderr_preset = "email"Pourquoi cela fonctionne
Le template global garde la plupart des services lisibles avec le même layout. Un processus précis peut lier un preset différent quand il expose des champs qui méritent un traitement particulier, comme un destinataire email.
Les logs fichiers conservent toujours la sortie brute du processus enfant. Les templates affectent seulement le rendu dans la console/TUI et l’historique.
Valeurs par défaut utiles ici
fields.separator: valeur effective par défaut" "formatsur un champ : valeur effective par défautnonevisible_ifsur un champ : valeur effective par défautalwayspreset,stdout_presetetstderr_preset: défaut aucunprocess.log_template: hérite deglobal.log_template
Ce qu’il faut personnaliser
- Remplacez les clés de champs par celles émises par votre logger.
- Gardez un preset global simple pour la plupart des services.
- Ajoutez des presets spécialisés seulement quand un service expose des champs vraiment utiles.
- Utilisez
color_rulespour des valeurs stables comme les niveaux ou codes de statut.