Kuruluşumda, günlüğe kaydetmeyle ilgili olarak ekleyebileceğiniz veya yorum yapıp yapamayacağınızı bilmek istediğim bazı kurallar / guildeline'lar hazırladık.
Java kullanıyoruz ancak genel olarak loggin - kurallar ve tavsiyeler hakkında yorum yapabilirsiniz
Doğru günlük kaydı düzeyini kullanma
- HATA: Bir şeyler çok yanlış gitti ve hemen düzeltilmesi gerekiyor
- UYARI: İşlem sabitlenmeden devam edebilir. Uygulama bu seviyeye tolerans göstermelidir, ancak uyarı daima araştırılmalıdır.
- BİLGİ: Önemli bir sürecin bittiğine dair bilgiler
- DEBUG. Sadece geliştirme sırasında kullanılır
Ne günlüğe kaydettiğinizi bildiğinizden emin olun.
Günlüğe kaydetmenin uygulamanın davranışını etkilemesinden kaçının
Günlüğe kaydetmenin işlevi, günlüğe ileti yazmak olmalıdır.
- İşlem kaydı iletileri açıklayıcı, açık, kısa ve öz olmalıdır.
Sorun giderme sırasında saçma bir mesaj çok fazla kullanılmıyor.
- Log4j'ye doğru özellikleri koyun
Doğru yöntem ve sınıfın otomatik olarak yazıldığını girin.
Misal:
Tarihli -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/
- Günlük değeri.
Lütfen uygulamadaki değerleri günlüğe kaydedin.
- Günlük öneki.
Uygulamanın hangi kısmının, günlüklemenin tercihen proje üzerinde anlaşılan önek için bir şeyle yazıldığını belirtin; PANDORA_DB
- Metin miktarı.
Çok fazla günlük metni olmamasına dikkat edin. Uygulamanın performansını etkileyebilir.
- Kayıt formatı:
-Log4j ile kullanılacak çeşitli varyantlar ve yöntemler vardır, ancak istisnalarda oturum açtığımızda aşağıdaki formatın aynı şekilde kullanılmasını istiyoruz:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
Yukarıdaki örnekte, sınıfı ve yöntemi otomatik olarak yazacak şekilde log4j özelliklerini ayarladığımız varsayılmaktadır.
Her zaman günlükçüyü kullanın, aşağıdakileri değil:
System.out.println(), System.err.println(), e.printStackTrace()
Web uygulaması çerçevemizi kullanıyorsa, işleyicide try-catch kullanıyorsanız ve yukarıdaki modele göre günlük kaydediyorsanız, EJB'den çok ayrıntılı hata bilgileri alabilirsiniz:
Projemizde, yöntem ve sınıf adlarının otomatik olarak yazıldığı bu dönüşüm modelini kullanıyoruz. Burada konsol ve tarihli filipon için iki farklı pattent kullanıyoruz:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Yukarıdaki örneklerde hem yöntem hem de sınıf yazılır. Konsolda sıra numaramız da yazılacaktır.
toString()
Lütfen toString()
her nesne için bir tane bulundurun. 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();
}
bu çıktıları yapan özel yöntem yerine
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);
}
Peki bu günlüğe kaydetme yöntemlerini kullanarak ekleyebileceğiniz, yorumlayabileceğiniz veya şüpheli bulabileceğiniz bir şey var mı? Java, Java ve log4j ile ilgili olmasa bile yanıtlamaktan veya yorum yapmaktan çekinmeyin.