Nella mia organizzazione abbiamo messo insieme alcune regole / gilde sulla registrazione che vorrei sapere se è possibile aggiungere o commentare.
Usiamo Java ma puoi commentare in generale sull'accesso - regole e consigli
-
Utilizza il livello di registrazione corretto
- ERRORE: Qualcosa è andato storto e deve essere risolto immediatamente
- ATTENZIONE: il processo può continuare senza correzione. L'applicazione dovrebbe tollerare questo livello ma l'avviso dovrebbe sempre essere analizzato.
- INFO: informazioni sul completamento di un processo importante
- DEBUG. Viene utilizzato solo durante lo sviluppo
-
Assicurati di sapere cosa stai loggando.
-
Evita che il log influenzi il comportamento dell'applicazione
La funzione della registrazione dovrebbe essere quella di scrivere messaggi nel registro.
- I messaggi di log dovrebbero essere descrittivi, chiari, brevi e concisi.
Non c'è molto uso di un messaggio senza senso durante la risoluzione dei problemi.
- Inserisci le proprietà giuste in log4j
Indica che il metodo e la classe corretti sono scritti automaticamente.
Esempio:
Datedfile -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/
- Valore log.
Si prega di registrare i valori dall'applicazione.
- Prefisso registro.
Indica quale parte dell'applicazione è quella da cui è stato scritto il log, preferibilmente con qualcosa per il prefisso concordato del progetto, ad es. PANDORA_DB
- La quantità di testo.
Fai attenzione in modo che non ci sia troppo testo di registrazione. Può influenzare le prestazioni dell'app.
- Formato di registrazione:
-Ci sono diverse varianti e metodi da usare con log4j ma vorremmo un uso uniforme del seguente formato, quando accediamo alle eccezioni:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
Nell'esempio sopra si presuppone che abbiamo impostato le proprietà di log4j in modo che scriva automaticamente la classe e il metodo.
Usa sempre il logger e non il seguente:
System.out.println(), System.err.println(), e.printStackTrace()
Se l'app web utilizza il nostro framework, puoi ottenere informazioni di errore molto dettagliate da EJB, se usi try-catch nel gestore e loggati secondo il modello sopra:
Nel nostro progetto utilizziamo questo modello di conversione con il quale i nomi dei metodi e delle classi vengono scritti automaticamente. Qui usiamo due diversi modelli per console e per outputfile datato:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
In entrambi gli esempi sopra il metodo e la classe verranno scritti. Nel numero di riga della console verrà scritto anche il nostro.
-
toString()
Si prega di avere una toString()
per ogni oggetto.
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();
}
invece del metodo speciale che rende queste uscite
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);
}
Quindi c'è qualcosa che puoi aggiungere, commentare o trovare discutibile con questi modi di usare il logging? Sentiti libero di rispondere o commentare anche se non è collegato a Java, Java e log4j è solo un'implementazione di come viene ragionato.