Jika saya mengembangkan perpustakaan Java, apakah praktik yang baik untuk mengeluarkan laporan log dari dalam kode perpustakaan?
Memiliki logging di dalam perpustakaan akan membuat debugging dan troubleshooting lebih transparan. Namun, di sisi lain, saya tidak suka membuang sampah sembarangan kode perpustakaan saya dengan pernyataan logging. Apakah ada implikasi kinerja yang perlu dipertimbangkan juga?
Jawaban:
Ya kamu harus. Menggunakan fasad logging seperti SLF4J memberi Anda fleksibilitas tanpa membebani pengguna Anda dengan kerangka kerja logging tertentu.
Juga, jika pengguna Anda tidak menyertakan botol SLF4J (dari panduan pengguna ):
Jika Anda khawatir tentang implikasi kinerja logging, lihat entri FAQ SLF4J ini . Idenya adalah Anda memberikan parameter untuk mencatat pernyataan alih-alih menambahkannya ke dalam sebaris string:
Apakah SLF4J merupakan fasad logging yang lain?
sumber
Ya , Anda harus masuk dari kode perpustakaan Anda. Ini tidak hanya membantu Anda berkembang, tetapi orang-orang yang menggunakan perpustakaan akan merasakan manfaatnya. Ingatlah bahwa Anda selalu dapat mengatur level logging hanya untuk menunjukkan pernyataan log yang Anda butuhkan - dan mereka dapat melakukan hal yang sama.
Baru-baru ini saya menggunakan Mybatis , alat ORM open source. Saya men-debug masalah di mana kueri yang saya pikir seharusnya benar tidak menghasilkan apa-apa. Itu adalah kueri parameter, dan karena Mybatis telah masuk dalam kode pustaka, saya bisa menyalakannya dan melihat kueri yang sebenarnya sedang dijalankan. Mudah untuk mengatakan bahwa saya menukar dua parameter. Tanpa masuk ke perpustakaan saya tidak bisa menemukan masalah secepat itu.
sumber