Apakah saya perlu memutakhirkan log4j ke slf4j [ditutup]


10

Kami sedang meninjau aplikasi web JEE kami untuk beberapa refactoring yang direncanakan dan salah satu sarannya adalah untuk mengganti log4jdengan logbackatauslf4j

Tim tidak jelas apakah kami harus melakukan ini - karena saat ini kami ingin mengikuti jika tidak rusak, jangan perbaiki di area ini.

Sunting: Saya tidak meminta perbandingan kerangka logging, tetapi apakah itu elemen refactoring yang berharga untuk mengubah kerangka kerja ketika kita cukup senang dengan log4j

Jawaban:


18

Satu pertanyaan penting yang harus Anda pertimbangkan: Apakah Anda membangun perpustakaan yang digunakan oleh orang lain atau apakah Anda membangun produk akhir?

Dalam kasus pertama, SLF4j sangat penting, karena seseorang akan mengintegrasikan pustaka Anda dalam perangkat lunaknya yang sudah masuk dan akan lebih baik jika kelas Anda hanya menggunakannya.

Dalam kasus kedua, saya akan mengatakan Anda bisa membiarkannya apa adanya. Mungkin berpikir tentang menggunakan slf4j pada proyek selanjutnya.


7

Jangan. Lebih baik habiskan waktu Anda mengimplementasikan fitur yang berguna dan berharga.


6
-1: logging harus sebaik mungkin!

7
Jadi log4j, yang mereka gunakan, tidak cukup berguna? Mengganti kerangka kerja hanya karena itu mungkin, adalah buang-buang waktu. OP bahkan menyatakan penebangan tidak rusak.
Martin Wickman

1
Saya tidak akan memilih ini. Martin bisa saja benar. Jika Jose memiliki beberapa produk jadi (bukan perpustakaan, lihat jawaban saya) dia harus membiarkannya apa adanya dan menghabiskan waktu di tempat lain ...
Tim Büthe

2
@ Thorbjørn, tidak, logging (seperti fitur pada umumnya) harus sebagus yang diperlukan . Jika mereka tidak memiliki masalah dengan Log4J, (tapi Anda belum mengutip apa pun yang membuatnya perlu untuk menggantikannya), kemungkinan besar ada penggunaan waktu mereka yang lebih baik.
Péter Török

1
-1: Preferensi tanpa syarat satu sama lain adalah IMHO salah. Coba kontraskan jawaban ini dengan persyaratan jawaban Tim Bueth.
Ajeet Ganga

1

Jika Log4J bekerja untuk Anda, tidak ada alasan untuk mengubahnya. Jika tidak, cari alternatif yang melakukan apa yang Anda butuhkan, yang mungkin atau mungkin tidak slf4j.

Hanya karena seseorang mengatakan sesuatu lebih baik daripada sesuatu yang lain seharusnya tidak pernah menjadi alasan untuk mengubah seluruh aplikasi Anda (atau untuk mengadopsi sesuatu yang baru sama sekali).


0

Slf4j adalah API yang memungkinkan Anda untuk memilih apakah akan menggunakan log4j, logback, atau jdk log default pada waktu penempatan alih-alih memutuskan pada waktu kompilasi (yang terjadi ketika Anda kode langsung ke log4j)

Slf4j juga menyediakan {} -construct yang dapat menunda panggilan toString () yang mahal, menghindarinya sepenuhnya jika pernyataan log tidak diaktifkan.

Anda kemudian dapat memilih mesin nanti.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.