Di organisasi saya, kami telah mengumpulkan beberapa aturan / guildeline tentang pencatatan yang ingin saya ketahui jika Anda dapat menambahkan atau berkomentar.
Kami menggunakan Java tetapi Anda dapat berkomentar secara umum tentang loggin - aturan dan saran
Gunakan level logging yang benar
- GALAT: Ada yang salah dan perlu segera diperbaiki
- PERINGATAN: Proses dapat berlanjut tanpa memperbaiki. Aplikasi harus mentolerir level ini tetapi peringatan harus selalu diselidiki.
- INFO: Informasi bahwa proses penting selesai
- DEBUG. Hanya digunakan selama pengembangan
Pastikan Anda tahu apa yang Anda masuk.
Hindari penebangan yang memengaruhi perilaku aplikasi
Fungsi pencatatan harus untuk menulis pesan dalam log.
- Pesan log harus deskriptif, jelas, singkat dan ringkas.
Tidak ada banyak penggunaan pesan omong kosong saat pemecahan masalah.
- Masukkan properti yang tepat di log4j
Masukkan bahwa metode dan kelas yang tepat ditulis secara otomatis.
Contoh:
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/
- Nilai log.
Harap catat nilai dari aplikasi.
- Awalan log.
Nyatakan bagian mana dari aplikasi yang digunakan untuk log in, lebih disukai dengan sesuatu untuk awalan yang disetujui misalnya proyek PANDORA_DB
- Jumlah teks.
Berhati-hatilah agar tidak ada terlalu banyak pencatatan teks. Ini dapat mempengaruhi kinerja aplikasi.
- Format penebangan:
-Ada beberapa varian dan metode untuk digunakan dengan log4j tetapi kami ingin menggunakan format yang seragam secara seragam, ketika kami masuk dengan pengecualian:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
Dalam contoh di atas diasumsikan bahwa kita telah menetapkan properti log4j sehingga secara otomatis menulis kelas dan metode.
Selalu gunakan logger dan bukan yang berikut:
System.out.println(), System.err.println(), e.printStackTrace()
Jika aplikasi web menggunakan framework kami, Anda bisa mendapatkan informasi kesalahan yang sangat terperinci dari EJB, jika menggunakan try-catch di handler dan masuk sesuai dengan model di atas:
Dalam proyek kami, kami menggunakan pola konversi ini dengan metode dan nama kelas mana yang ditulis secara otomatis. Di sini kami menggunakan dua pattents berbeda untuk konsol dan untuk file datefile:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Baik dalam contoh di atas metode dan kelas wioll dituliskan. Di nomor baris konsol juga akan ditulis.
toString()
Silakan memiliki toString()
untuk setiap objek. 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();
}
bukannya metode khusus yang membuat output ini
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);
}
Jadi, adakah yang bisa Anda tambahkan, komentari, atau temukan dipertanyakan dengan cara-cara menggunakan pencatatan ini? Merasa bebas untuk menjawab atau berkomentar walaupun itu tidak terkait dengan Java, Java dan log4j hanyalah implementasi dari bagaimana hal ini beralasan.