JavaRush /Java Blog /Random-ID /Kami menghubungkan logging ke proyek JavaRush kami (slf4f...
Дмитрий Яковенко
Level 35
Москва

Kami menghubungkan logging ke proyek JavaRush kami (slf4f dan log4j)

Dipublikasikan di grup Random-ID
Anda dapat membaca cara menghubungkan Maven ke proyek JavaRush Anda di artikel saya ini . Berikut ini mengasumsikan bahwa Anda tahu bagaimana melakukan hal ini. Jika kita ingin menggunakan slf4j, maka kita memerlukan ketergantungan:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Setelah ini kami melakukan:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
Dan kami mendapatkan kesalahan:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Yang umumnya logis. slf4j adalah sebuah pembungkus, tapi dengan apa kita membungkusnya? Tidak ada apa-apa? Ya, kami mendapat kesalahan. Anda dapat membungkusnya dengan salah satu dari berikut ini: log4j, util.logging, NOP, System.err, JCL, logback. Rincian lebih lanjut dalam instruksi asli . Mari kita lihat contoh log4j dan System.err: 1) Mari kita mulai dengan sesuatu yang sederhana, dengan System.err . Untuk melakukan ini, tambahkan yang ini (slf4j-simple) ke ketergantungan sebelumnya (slf4j-api).
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Kami mengambil versi yang sama, per 10 Mei 2021 adalah 1.7.30. Jika Anda mengambil dependensi dari https://mvnrepository.com/ , jangan lupa untuk menghapusnya
<scope>test</scope>
Jika tidak, log Anda hanya akan berfungsi dalam pengujian. 2) Sekarang mari kita coba mengkonfigurasi log4j , untuk ini kita perlu menambahkan 2 dependensi: log4j itu sendiri dan lapisan antara slf4j dan log4j (slf4j-log4j12). Ini terlihat seperti ini:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
Jelas bahwa kita perlu menghapus (slf4j-simple) agar slf4j tidak bingung dengan logger mana yang harus digunakan. Dan keluar (slf4j-api), karena ini slf4j. Mengenai 2 ketergantungan tambahan. log4j kami menambahkan yang lama (mulai Mei 2012, saya tidak tahu kenapa, Anda bisa bereksperimen dengan yang lain). Versinya adalah 1.2.17. Agar slf4j dapat bekerja dengannya, Anda memerlukan lapisan yang sesuai - slf4j-log4j12, di mana karakter terakhir (12) berarti versi log4j. Dalam hal ini, versi slf4j-api dan slf4j-log4j12 harusnya 1.7.30 - versi stabil terbaru saat ini. Setelah Anda menghubungkan dependensi dan memperbarui proyek Maven. Agar log4j berfungsi, Anda memerlukan 2 hal lagi: 1) Siapkan file konfigurasi. Kami membaca, memilih, menyalin. 2) Baca konfigurasi log4j sebelum bekerja:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Ya, atau di mana Anda memiliki file tersebut. Jika Anda ingin melihat semua log, jangan lupa atur level logging ke ALL. Kami menambahkan ke resume - log4j & slf4j. Kamu cantik! Jika membantu - suka, berlangganan, bel!)))
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION