W mojej organizacji opracowaliśmy kilka zasad / linii gildii dotyczących logowania, które chciałbym wiedzieć, czy możesz dodawać lub komentować.
Używamy Javy, ale możesz ogólnie komentować zasady logowania - zasady i porady
Użyj prawidłowego poziomu rejestrowania
- BŁĄD: Coś poszło nie tak i trzeba natychmiast naprawić
- OSTRZEŻENIE: Proces można kontynuować bez naprawy. Aplikacja powinna tolerować ten poziom, ale ostrzeżenie powinno zawsze zostać zbadane.
- INFORMACJE: Informacja o zakończeniu ważnego procesu
- ODPLUSKWIĆ. Jest używany tylko podczas programowania
Upewnij się, że wiesz, co logujesz.
Unikaj, aby rejestrowanie miało wpływ na zachowanie aplikacji
Funkcja rejestrowania powinna polegać na zapisywaniu komunikatów w dzienniku.
- Wiadomości z dziennika powinny być opisowe, jasne, krótkie i zwięzłe.
Podczas rozwiązywania problemów nie ma większego zastosowania bzdury.
- Umieść odpowiednie właściwości w log4j
Wstaw odpowiednią metodę i klasę, która jest zapisywana automatycznie.
Przykład:
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/
- Zaloguj wartość
Zaloguj wartości z aplikacji.
- Przedrostek dziennika.
Podaj, z której części aplikacji pochodzi logowanie, najlepiej z prefiksem projektu np PANDORA_DB
- Ilość tekstu.
Uważaj, aby nie było za dużo tekstu logowania. Może to wpływać na wydajność aplikacji.
- Format rejestrowania:
- Istnieje kilka wariantów i metod do użycia z log4j, ale chcielibyśmy jednolitego użycia następującego formatu, gdy logujemy się w wyjątkach:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
W powyższym przykładzie założono, że ustawiliśmy właściwości log4j, aby automatycznie zapisywał klasę i metodę.
Zawsze używaj rejestratora, a nie:
System.out.println(), System.err.println(), e.printStackTrace()
Jeśli aplikacja internetowa korzysta z naszej struktury, możesz uzyskać bardzo szczegółowe informacje o błędach od EJB, jeśli używasz try-catch w module obsługi i logujesz się zgodnie z powyższym modelem:
W naszym projekcie wykorzystujemy ten wzorzec konwersji, dzięki któremu nazwy metod i klas są zapisywane automatycznie. Tutaj używamy dwóch różnych patentów dla konsoli i dla datowanego pliku apletu:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
W obu powyższych przykładach metoda i klasa zostaną zapisane. W wierszu konsoli będzie również zapisany numer naszego.
toString()
Proszę mieć toString()
dla każdego obiektu. DAWNY:
@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();
}
zamiast specjalnej metody, która tworzy te wyniki
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);
}
Czy jest coś, co można dodać, skomentować lub uznać za wątpliwe przy użyciu tych sposobów korzystania z rejestrowania? Nie krępuj się odpowiadać lub komentować, nawet jeśli nie jest to związane z Javą, Javą, a log4j to tylko implementacja uzasadnienia.