Dans mon organisation, nous avons mis en place des règles / lignes directrices sur la journalisation que j'aimerais savoir si vous pouvez ajouter ou commenter.
Nous utilisons Java mais vous pouvez commenter en général la connexion - règles et conseils
Utilisez le niveau de journalisation correct
- ERREUR: quelque chose s'est très mal passé et doit être réparé immédiatement
- AVERTISSEMENT: le processus peut se poursuivre sans correction. L'application doit tolérer ce niveau mais l'avertissement doit toujours faire l'objet d'une enquête.
- INFO: information qu'un processus important est terminé
- DÉBOGUER. Est uniquement utilisé pendant le développement
Assurez-vous de savoir ce que vous enregistrez.
Évitez que la journalisation influence le comportement de l'application
La fonction de la journalisation doit être d'écrire des messages dans le journal.
- Les messages de journal doivent être descriptifs, clairs, courts et concis.
Il n'y a pas beaucoup d'utilisation d'un message absurde lors du dépannage.
- Mettez les bonnes propriétés dans log4j
Ajoutez que la bonne méthode et la bonne classe sont écrites automatiquement.
Exemple:
Fichier daté -web
log4j.rootLogger=ERROR, DATEDFILE
log4j.logger.org.springframework=INFO
log4j.logger.waffle=ERROR
log4j.logger.se.prv=INFO
log4j.logger.se.prv.common.mvc=INFO
log4j.logger.se.prv.omklassning=DEBUG
log4j.appender.DATEDFILE=biz.minaret.log4j.DatedFileAppender
log4j.appender.DATEDFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATEDFILE.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%C{1}.%M] - %m%n
log4j.appender.DATEDFILE.Prefix=omklassning.
log4j.appender.DATEDFILE.Suffix=.log
log4j.appender.DATEDFILE.Directory=//localhost/WebSphereLog/omklassning/
- Valeur du journal.
Veuillez enregistrer les valeurs de l'application.
- Préfixe du journal.
Indiquez de quelle partie de la demande la journalisation est écrite, de préférence avec quelque chose pour le préfixe convenu du projet, par exemple PANDORA_DB
- La quantité de texte.
Soyez prudent afin qu'il n'y ait pas trop de texte de journalisation. Cela peut influencer les performances de l'application.
- Format d'enregistrement:
-Il existe plusieurs variantes et méthodes à utiliser avec log4j mais nous aimerions une utilisation uniforme du format suivant, lorsque nous nous connectons à des exceptions:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
Dans l'exemple ci-dessus, nous supposons que nous avons défini les propriétés log4j afin qu'il écrive automatiquement la classe et la méthode.
Utilisez toujours l'enregistreur et non les suivants:
System.out.println(), System.err.println(), e.printStackTrace()
Si l'application Web utilise notre framework, vous pouvez obtenir des informations d'erreur très détaillées auprès d'EJB, si vous utilisez try-catch dans le gestionnaire et la journalisation selon le modèle ci-dessus:
Dans notre projet, nous utilisons ce modèle de conversion avec lequel les noms de méthode et de classe sont écrits automatiquement. Ici, nous utilisons deux brevets différents pour la console et pour le datfileappender:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Dans les deux exemples ci-dessus, la méthode et la classe seront écrites. Dans le numéro de ligne de la console sera également écrit notre.
toString()
Veuillez en avoir un toString()
pour chaque objet. EX:
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(" DwfInformation [ ");
sb.append("cc: ").append(cc);
sb.append("pn: ").append(pn);
sb.append("kc: ").append(kc);
sb.append("numberOfPages: ").append(numberOfPages);
sb.append("publicationDate: ").append(publicationDate);
sb.append("version: ").append(version);
sb.append(" ]");
return sb.toString();
}
au lieu d'une méthode spéciale qui rend ces sorties
public void printAll()
{
logger.info("inbet: " + getInbetInput());
logger.info("betdat: " + betdat);
logger.info("betid: " + betid);
logger.info("send: " + send);
logger.info("appr: " + appr);
logger.info("rereg: " + rereg);
logger.info("NY: " + ny);
logger.info("CNT: " + cnt);
}
Y a-t-il quelque chose que vous pouvez ajouter, commenter ou trouver discutable avec ces façons d'utiliser la journalisation? N'hésitez pas à répondre ou à commenter même s'il n'est pas lié à Java, Java et log4j n'est qu'une implémentation de la façon dont cela est raisonné.