JavaRush /Блоги Java /Random-TG /Мо сабти номро ба лоиҳаи JavaRush-и худ пайваст мекунем (...
Дмитрий Яковенко
Сатҳи
Москва

Мо сабти номро ба лоиҳаи JavaRush-и худ пайваст мекунем (slf4f ва log4j)

Дар гурӯҳ нашр шудааст
Шумо метавонед дар ин мақолаи ман чӣ гуна Maven-ро ба лоиҳаи JavaRush пайваст кунед . Дар зер тахмин мекунанд, ки шумо медонед, ки чӣ тавр ин корро кунед. Агар мо хоҳем, ки slf4j -ро истифода барем, пас ба мо вобастагӣ лозим аст:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Пас аз ин мо мекунем:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
Ва мо хатогиро мегирем:
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.
Ки умуман мантиқист. slf4j парпеч аст, аммо мо онро чӣ печондем? Ҳеҷ чиз? Хуб, мо хато кардем. Шумо метавонед онро дар атрофи яке аз инҳо печонед: log4j, util.logging, NOP, System.err, JCL, logback. Тафсилоти бештар дар дастурҳои аслӣ . Биёед мисоли log4j ва System.err-ро бубинем: 1) Биёед бо чизи оддӣ, бо System.err оғоз кунем . Барои ин, онро (slf4j-оддӣ) ба вобастагии қаблӣ (slf4j-api) илова кунед.
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Мо ҳамон versionҳоро мегирем, то 10 майи соли 2021 он 1.7.30 аст. Агар шумо аз https://mvnrepository.com/ вобастагӣ гиред , нест карданро фаромӯш накунед
<scope>test</scope>
Дар акси ҳол, гузоришҳои шумо танҳо дар санҷишҳо кор хоҳанд кард. 2) Акнун биёед кӯшиш кунем, ки log4j -ро танзим кунем , барои ин мо бояд 2 вобастагӣ илова кунем: худи log4j ва қабати байни slf4j ва log4j (slf4j-log4j12). Чунин ба назар мерасад:
<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-оддӣ) хориҷ кунем, то slf4j дар бораи он ки бо кадом логгер кор кунад, ошуфта нашаванд. Ва тарк кунед (slf4j-api), зеро ин slf4j аст. Дар бораи 2 вобастагии иловашуда. log4j мо кӯҳнаро илова карда истодаем (аз моҳи майи соли 2012, ман намедонам, ки чаро, шумо метавонед бо дигарон озмоиш кунед). Версияи он 1.2.17 аст. Барои он ки slf4j бо он кор кунад, ба шумо қабати мувофиқ лозим аст - slf4j-log4j12, ки дар он аломатҳои охирин (12) маънои versionи log4j-ро доранд. Дар ин ҳолат, versionи slf4j-api ва slf4j-log4j12 бояд 1.7.30 бошад - versionи охирини устувор дар айни замон. Пас аз он ки шумо вобастагиҳоро пайваст кардед ва лоиҳаи Maven навсозӣ кардед. Барои кор кардани log4j ба шумо ду чизи дигар лозим аст: 1) Файли конфигуратсияро насб кунед. Мо мехонем, интихоб мекунем, нусхабардорӣ мекунем. 2) Пеш аз кор конфигуратсияи log4j -ро хонед:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Хуб, ё дар куҷо шумо файл доред. Агар шумо хоҳед, ки ҳамаи гузоришҳоро бубинед, фаромӯш накунед, ки сатҳи сабтро ба ҲАМАИ муқаррар кунед. Мо ба резюме илова мекунем - log4j & slf4j. Шумо зебоед! Агар ин кӯмак кард - лайк монед, обуна шавед, занг занед!)))
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION