JavaRush /Java blogi /Random-UZ /Biz jurnalni JavaRush loyihamizga ulaymiz (slf4f va log4j...

Biz jurnalni JavaRush loyihamizga ulaymiz (slf4f va log4j)

Guruhda nashr etilgan
Mavenni JavaRush loyihangizga qanday ulashni mening ushbu maqolamda o'qishingiz mumkin . Quyidagilar buni qanday qilishni bilasiz deb taxmin qiladi. Agar biz slf4j dan foydalanmoqchi bo'lsak, unda bizga bog'liqlik kerak:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Shundan so'ng biz:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
Va biz xatoni olamiz:
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.
Bu umuman mantiqiy. slf4j - bu o'rash, lekin biz uni nima bilan o'rab oldik? Hech narsa? Xo'sh, bizda xatolik bor. Siz uni quyidagilardan biriga o'rashingiz mumkin: log4j, util.logging, NOP, System.err, JCL, logback. Asl ko'rsatmalarda batafsil ma'lumot . Keling, log4j va System.err misolini ko'rib chiqaylik: 1) Oddiy narsadan boshlaylik, System.err . Buning uchun buni (slf4j-oddiy) oldingi qaramlikka (slf4j-api) qo'shing.
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Biz bir xil versiyalarni olamiz, 2021 yil 10-may holatiga ko'ra 1.7.30. Agar siz https://mvnrepository.com/ dan bog'liqlikni olsangiz , olib tashlashni unutmang
<scope>test</scope>
Aks holda, jurnallaringiz faqat testlarda ishlaydi. 2) Endi log4j ni sozlashga harakat qilaylik , buning uchun biz ikkita bog'liqlikni qo'shishimiz kerak: log4j ning o'zi va slf4j va log4j (slf4j-log4j12) orasidagi qatlam. Bu shunday ko'rinadi:
<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>
Slf4j qaysi logger bilan ishlashi kerakligi haqida chalkashmasligi uchun (slf4j-oddiy) olib tashlashimiz kerakligi aniq. Va qoldiring (slf4j-api), chunki bu slf4j. 2 qo'shilgan bog'liqlik haqida. log4j biz eskisini qo'shmoqdamiz (2012 yil may oyidan boshlab, nima uchunligini bilmayman, siz boshqalar bilan tajriba qilishingiz mumkin). Uning versiyasi 1.2.17. Slf4j u bilan ishlashi uchun sizga tegishli qatlam kerak - slf4j-log4j12, bu erda oxirgi belgilar (12) log4j versiyasini bildiradi. Bunday holda, slf4j-api va slf4j-log4j12 versiyalari 1.7.30 bo'lishi kerak - hozirgi vaqtda eng so'nggi barqaror. Bog'liqlarni ulab, Maven loyihasini yangilaganingizdan so'ng. Log4j ishlashi uchun sizga yana 2 ta narsa kerak: 1) Konfiguratsiya faylini sozlang. Biz o'qiymiz, tanlaymiz, nusxalaymiz. 2) Ishdan oldin log4j konfiguratsiyasini o'qing:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Xo'sh, yoki fayl qaerda bor. Agar siz barcha jurnallarni ko'rmoqchi bo'lsangiz, ro'yxatga olish darajasini HAMMAsiga o'rnatishni unutmang. Biz rezyumega qo'shamiz - log4j & slf4j. Siz ajoyibsiz! Agar u yordam bergan bo'lsa - like, obuna bo'ling, qo'ng'iroq qiling!)))
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION