Nella mia organizzazione abbiamo messo insieme alcune regole / corporazioni sulla registrazione che vorrei sapere se è possibile aggiungere o commentare.
Usiamo Java ma puoi commentare in generale sulla login - regole e consigli
Utilizzare il livello di registrazione corretto
- ERRORE: Qualcosa non ha funzionato e deve essere risolto immediatamente
- ATTENZIONE: il processo può continuare senza riparazioni. L'applicazione dovrebbe tollerare questo livello ma l'avviso deve sempre essere esaminato.
- INFO: informazioni sul completamento di un processo importante
- DEBUG. Viene utilizzato solo durante lo sviluppo
Assicurati di sapere cosa stai registrando.
Evitare che la registrazione influenzi il comportamento dell'applicazione
La funzione della registrazione dovrebbe essere quella di scrivere messaggi nel registro.
- I messaggi di registro devono 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
Metti che il metodo e la classe giusti vengono scritti automaticamente.
Esempio:
Datatedfile -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 di registro.
Si prega di registrare i valori dall'applicazione.
- Prefisso registro.
Indicare da quale parte dell'applicazione è stata scritta la registrazione, preferibilmente con qualcosa per il prefisso concordato del progetto, ad es PANDORA_DB
- La quantità di testo.
Fare attenzione in modo che non vi sia troppo testo di registrazione. Può influenzare le prestazioni dell'app.
- Formato di registrazione:
-Ci sono diverse varianti e metodi da utilizzare 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 presume che abbiamo impostato le proprietà log4j in modo che scriva automaticamente la classe e il metodo.
Utilizzare sempre il logger e non i seguenti:
System.out.println(), System.err.println(), e.printStackTrace()
Se l'app Web utilizza il nostro framework è possibile ottenere informazioni di errore molto dettagliate da EJB, se si utilizza try-catch nel gestore e si registra in base al 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 brevetti per console e per datefileappender:
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. Nella riga della console verrà anche scritto il nostro.
toString()
Si prega di avere un 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 questi output
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 la registrazione? Sentiti libero di rispondere o commentare anche se non è correlato a Java, Java e log4j è solo un'implementazione di come questo è motivato.