JavaRush /Blog Java /Random-MS /Kami menyambungkan pengelogan ke projek JavaRush kami (sl...

Kami menyambungkan pengelogan ke projek JavaRush kami (slf4f dan log4j)

Diterbitkan dalam kumpulan
Anda boleh membaca cara menyambungkan Maven ke projek JavaRush anda dalam artikel saya ini . Yang berikut mengandaikan bahawa anda tahu cara melakukannya. Jika kita ingin menggunakan slf4j, maka kita memerlukan kebergantungan:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Selepas ini kita lakukan:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
Dan kami mendapat ralat:
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 secara amnya logik. slf4j ialah pembalut, tetapi apa yang kami bungkus? tiada apa-apa? Nah, kami mendapat ralat. Anda boleh membungkusnya dengan salah satu daripada yang berikut: log4j, util.logging, NOP, System.err, JCL, logback. Butiran lanjut dalam arahan asal . Mari kita lihat contoh log4j dan System.err: 1) Mari kita mulakan dengan sesuatu yang mudah, dengan System.err . Untuk melakukan ini, tambahkan yang ini (slf4j-simple) pada kebergantungan sebelumnya (slf4j-api).
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Kami mengambil versi yang sama, pada 10 Mei 2021 ialah 1.7.30. Jika anda mengambil kebergantungan daripada https://mvnrepository.com/ , jangan lupa untuk mengalih keluar
<scope>test</scope>
Jika tidak, log anda hanya akan berfungsi dalam ujian. 2) Sekarang mari kita cuba untuk mengkonfigurasi log4j , untuk ini kita perlu menambah 2 kebergantungan: log4j sendiri dan lapisan antara slf4j dan log4j (slf4j-log4j12). Ia kelihatan 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 sekali bahawa kita perlu mengalih keluar (slf4j-simple) supaya slf4j tidak keliru tentang pembalak yang mana ia harus berfungsi. Dan tinggalkan (slf4j-api), kerana ini adalah slf4j. Mengenai 2 kebergantungan tambahan. log4j kami menambah yang lama (mulai Mei 2012, saya tidak tahu mengapa, anda boleh bereksperimen dengan orang lain). Versinya ialah 1.2.17. Untuk membolehkan slf4j berfungsi dengannya, anda memerlukan lapisan yang sesuai - slf4j-log4j12, di mana aksara terakhir (12) bermaksud versi log4j. Dalam kes ini, versi slf4j-api dan slf4j-log4j12 hendaklah 1.7.30 - versi stabil terkini pada masa ini. Selepas anda menyambung kebergantungan dan mengemas kini projek Maven. Untuk log4j berfungsi, anda memerlukan 2 perkara lagi: 1) Sediakan fail konfigurasi. Kami membaca, memilih, menyalin. 2) Baca konfigurasi log4j sebelum bekerja:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Nah, atau di mana anda mempunyai fail itu. Jika anda ingin melihat semua log, jangan lupa untuk menetapkan tahap pengelogan kepada SEMUA. Kami menambah resume - log4j & slf4j. awak memang cantik! Jika ia membantu - suka, langgan, loceng!)))
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION