Saya ingin menggunakan log di program saya. Saya mendengar tentang java.util.logging , tetapi saya tidak tahu bagaimana memulainya.
Apakah ada contoh apa yang bisa saya lakukan dengan logging? Bagaimana saya menggunakan logging di program saya sendiri?
java
logging
java.util.logging
Renato Dinhani
sumber
sumber
Jawaban:
java.util.logging
membuat Anda tidak perlu membawa satu file jar lagi dengan aplikasi Anda, dan itu berfungsi dengan baik dengan Formatter yang baik.Secara umum, di bagian atas setiap kelas , Anda harus memiliki:
Kemudian, Anda bisa menggunakan berbagai fasilitas dari kelas Logger .
Gunakan
Level.FINE
untuk apa pun yang sedang debugging di tingkat atas dari aliran eksekusi:Gunakan
Level.FINER
/Level.FINEST
di dalam loop dan di tempat-tempat di mana Anda mungkin tidak selalu perlu melihat banyak detail ketika men-debug masalah aliran dasar:Gunakan versi parameterisasi dari fasilitas logging untuk menjaga dari menghasilkan ton sampah gabungan String yang harus diikuti GC.
Object[]
seperti di atas murah, alokasi tumpukan biasanya.Dengan penanganan pengecualian, selalu catat rincian pengecualian lengkap:
Saya selalu menyampaikan
ex.toString()
pesan di sini, karena ketika saya "grep -n
" untuk "Exception
" dalam file log, saya juga bisa melihat pesannya. Jika tidak, itu akan berada pada baris output berikutnya yang dihasilkan oleh dump stack, dan Anda harus memiliki RegEx yang lebih canggih untuk mencocokkan garis itu juga, yang sering memberi Anda lebih banyak output daripada yang perlu Anda perhatikan.sumber
.fine()
metode ini untuk mencatat, tapi sepertinya saya tidak dapat membuat pesan ditampilkan ...Seharusnya menyatakan logger seperti ini:
jadi jika Anda refactor nama kelas Anda itu mengikuti.
Saya menulis artikel tentang java logger dengan contoh di sini .
sumber
Ada banyak contoh dan juga berbagai jenis untuk logging. Lihatlah paket java.util.logging .
Kode contoh:
Tanpa pengodean nama kelas :
sumber
Main.class.getSimpleName()
? Dengan cara ini, alat refactoring akan mengubahnya dengan benar jika diperlukan, namun itu tidak kikuk seperti solusi kedua Anda.SLF4J adalah fasad logging yang lebih baik daripada Apache Commons Logging (ACL). Ini memiliki jembatan ke kerangka kerja logging lainnya, membuat panggilan langsung ke ACL, Log4J, atau Java Util Logging melalui SLF4J, sehingga Anda dapat mengarahkan semua output ke satu file log jika Anda mau, hanya dengan satu file konfigurasi log. Mengapa aplikasi Anda menggunakan banyak kerangka kerja pencatatan? Karena perpustakaan pihak ketiga yang Anda gunakan, terutama yang lebih tua, mungkin bisa.
SLF4J mendukung berbagai implementasi logging. Itu dapat menampilkan semuanya ke standar-keluar, menggunakan Log4J, atau Logback (direkomendasikan lebih dari Log4J).
http://www.slf4j.org/
http://logback.qos.ch/
sumber
Saya akan menggunakan minlog , secara pribadi. Ini sangat sederhana, karena kelas logging adalah beberapa ratus baris kode.
sumber
Saya menyarankan agar Anda menggunakan utilitas log logging milik Apache. Ini sangat scalable dan mendukung file log terpisah untuk penebang yang berbeda. Lihat di sini .
sumber