JavaRush /Java Blogu /Random-AZ /Girişi JavaRush layihəmizə bağlayırıq (slf4f və log4j)
Дмитрий Яковенко
Səviyyə
Москва

Girişi JavaRush layihəmizə bağlayırıq (slf4f və log4j)

Qrupda dərc edilmişdir
Maven-i JavaRush layihənizə necə qoşacağınızı bu məqaləmdə oxuya bilərsiniz . Aşağıdakılar bunu necə edəcəyinizi bildiyinizi güman edir. Əgər slf4j istifadə etmək istəyiriksə, onda bizə asılılıq lazımdır:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Bundan sonra biz:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
Və səhv alırıq:
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.
Hansı ki, ümumiyyətlə məntiqlidir. slf4j bir sarğıdır, amma biz onu nəyə bükdük? Heç nə? Yaxşı, xəta baş verdi. Siz onu aşağıdakılardan birinə sara bilərsiniz: log4j, util.logging, NOP, System.err, JCL, logback. Daha ətraflı orijinal təlimatlarda . Log4j və System.err nümunəsinə baxaq: 1) Gəlin sadə birindən başlayaq, System.err . Bunu etmək üçün bunu (slf4j-sadə) əvvəlki asılılığa (slf4j-api) əlavə edin.
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Eyni versiyaları götürürük, 10 may 2021-ci il tarixinə 1.7.30-dur. Əgər https://mvnrepository.com/ saytından asılılıqlar götürsəniz , silməyi unutmayın
<scope>test</scope>
Əks halda, qeydləriniz yalnız testlərdə işləyəcək. 2) İndi log4j-i konfiqurasiya etməyə çalışaq , bunun üçün 2 asılılıq əlavə etməliyik: log4j-in özü və slf4j və log4j (slf4j-log4j12) arasında bir təbəqə. Bu belə görünür:
<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>
Aydındır ki, biz (slf4j-sadə) silməliyik ki, slf4j hansı loggerlə işləməli olduğunu çaşdırmasın. Və tərk edin (slf4j-api), çünki bu slf4j. Əlavə edilmiş 2 asılılığa gəldikdə. log4j köhnəsini əlavə edirik (2012-ci ilin may ayından, niyə bilmirəm, başqaları ilə təcrübə edə bilərsiniz). Onun versiyası 1.2.17-dir. slf4j-nin onunla işləməsi üçün sizə uyğun təbəqə lazımdır - slf4j-log4j12, burada sonuncu simvol (12) log4j versiyasını bildirir. Bu halda, slf4j-api və slf4j-log4j12 versiyaları 1.7.30 olmalıdır - hazırda ən son stabildir. Asılılıqları birləşdirdikdən və Maven layihəsini yenilədikdən sonra. log4j-in işləməsi üçün sizə daha 2 şey lazımdır: 1) Konfiqurasiya faylını qurun. Biz oxuyuruq, seçirik, kopyalayırıq. 2) İşdən əvvəl log4j konfiqurasiyasını oxuyun:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Yaxşı, ya da fayl haradadır. Bütün qeydləri görmək istəyirsinizsə, giriş səviyyəsini ALL-a təyin etməyi unutmayın. CV-yə əlavə edirik - log4j & slf4j. Siz möhtəşəmsiz! Əgər kömək etdisə - bəyənin, abunə olun, zəng edin!)))
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION