Journaux : stocker correctement et trouver rapidement
Structure
Des champs, pas des phrases : heure, niveau, service, version, identifiant de requête, identifiant utilisateur masqué et un événement. Ainsi on peut filtrer et agréger plutôt que chercher du texte.
Des niveaux utilisés avec cohérence : erreur pour ce qui nécessite attention, avertissement pour ce qui est exceptionnel mais géré, info pour les événements commerciaux, debug uniquement en développement.
Combien conserver
Les journaux sont un poste de coût significatif. Conservez en détail pendant peu de temps, agrégé pendant plus longtemps, et une archive bon marché pour ce qui est requis par conformité. Fixez cela une fois, sinon c'est décidé tout seul — vers le haut.
Quoi ne pas écrire
Mots de passe, jetons, numéros de carte, numéros d'identité et contenu de messages privés. Un journal est une base de données à tous égards, avec moins de contrôles — donc une fuite depuis lui est particulièrement fréquente.
Pour aller plus loin
Ajoutez un identifiant de requête généré à la périphérie et transmis à tous les composants et à la réponse à l'utilisateur. Quand un client signale une erreur avec un identifiant, l'enquête commence à la bonne ligne — au lieu de parcourir des millions de lignes autour d'une heure estimée.