convention de journalisation


1. [Obligatoire] L'API du système de journalisation (Log 4 j, Logback) ne peut pas être utilisée directement dans l'application. Au lieu de cela, l'API du framework de journalisation SLF 4 J doit être utilisée. le mode façade est propice à la maintenance et divers aspects des méthodes de traitement des journaux de classe sont unifiés. import org.slf4j.Logger;

import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(Abc.class);

2 [Obligatoire] Il est recommandé de sauvegarder les fichiers journaux pendant au moins 15 jours, car certaines exceptions ont les caractéristiques d'une fréquence d'occurrence "hebdomadaire".


3. [Obligatoire] La méthode de dénomination des journaux étendus dans l'application (comme la gestion, la surveillance temporaire, les journaux d'accès, etc.) :

appName _ logType _ logName . logType : type de journal, les catégories recommandées incluent

stats / desc / moniteur / visite, etc. ; logName : description du journal. L'avantage de ce type de dénomination : vous pouvez savoir grâce au nom du fichier à quelle application appartient le fichier journal, à quel type et à quelle fin. Il est également propice à la classification et à la recherche.

Exemple positif : Surveillez l'exception de conversion de fuseau horaire séparément dans l'application mppserver, par exemple : mppserver _ monitor _ timeZoneConvert

Explication : Il est recommandé de classer les journaux d'erreurs et les affaires. les journaux doivent être stockés séparément pour plus de commodité. Il est également pratique pour les développeurs de visualiser et de surveiller le système en temps opportun via les journaux.


4. [Obligatoire] Pour la sortie du journal au niveau trace/débogage/info, vous devez utiliser le format de sortie conditionnel ou utiliser la méthode d'espace réservé.

Description :

logger . debug( " Processing trade with id : " + id + " symbol : " + symbol);

Si le niveau de journalisation est warn , le journal ci-dessus ne sera pas imprimé, mais l'épissage de la chaîne L'opération sera effectuée, si le symbole est un objet, exécutera la méthode toString(), ce qui gaspille les ressources du système. Après avoir effectué l'opération ci-dessus, le journal final n'est pas imprimé.

Exemple positif :

(Condition)

if (logger.isDebugEnabled()) {
logger.debug("Processing trade with id: " + id + " symbol: " + symbol);
}
Exemple positif :

(Espace réservé)

logger.debug("Processing trade with id: {} symbol : {} ", id, symbol);
5 [Obligatoire] Évitez d'imprimer les journaux à plusieurs reprises et de gaspiller de l'espace disque. additivité = faux .

Exemple positif :

<logger name="com.taobao.dubbo.config" additivity="false">

6. [Obligatoire] Les informations anormales doivent inclure deux types d'informations : les informations sur la scène du crime. et des informations sur la pile d'exceptions. S'il n'est pas traité, jetez-le
.

Exemple positif :

logger.error(divers paramètres ou objets toString + "_" + e.getMessage(), e);

7. [Recommandé] Vous pouvez utiliser le niveau de journal d'avertissement pour enregistrer les erreurs de paramètres de saisie de l'utilisateur afin d'éviter que les utilisateurs ne soient perdus lorsqu'ils se plaignent. Faites attention au niveau de sortie du journal. Le niveau d'erreur enregistre uniquement les informations d'erreur importantes telles que les erreurs de logique système et les exceptions. Si cela n’est pas absolument nécessaire, veuillez ne pas saisir le niveau d’erreur dans ce scénario.


8. [Recommandé] Enregistrez soigneusement les journaux. Il est interdit de générer des journaux de débogage dans l'environnement de production ; de générer des journaux d'informations de manière sélective ; si vous utilisez warn pour enregistrer des informations sur le comportement de l'entreprise lors de son premier lancement, vous devez faire attention à la quantité de journaux générés pour éviter de saturer le disque du serveur, et n'oubliez pas de supprimer en temps opportun ces journaux d'observation.

Remarque : La sortie d'un grand nombre de journaux invalides n'est pas propice à l'amélioration des performances du système et ne permet pas de localiser rapidement les points d'erreur. Lorsque vous enregistrez des journaux, pensez : est-ce que quelqu'un lit vraiment ces journaux ? Que pouvez-vous faire après avoir vu ce journal ? Cela peut-il apporter des avantages au dépannage ?