JavaRush /وبلاگ جاوا /Random-FA /ما ورود به سیستم را به پروژه JavaRush خود وصل می کنیم (sl...
Дмитрий Яковенко
مرحله
Москва

ما ورود به سیستم را به پروژه 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-simple) را به وابستگی قبلی (slf4j-api) اضافه کنید.
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
ما همین نسخه ها را می گیریم، از 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-simple) را حذف کنیم تا slf4j در مورد اینکه با کدام لاگر باید کار کند گیج نشود. و (slf4j-api) را ترک کنید، زیرا این slf4j است. با توجه به 2 وابستگی اضافه شده. log4j را اضافه می کنیم (از می 2012، نمی دانم چرا، می توانید با دیگران آزمایش کنید). نسخه آن 1.2.17 است. برای اینکه slf4j با آن کار کند، به یک لایه مناسب نیاز دارید - slf4j-log4j12، که در آن آخرین کاراکترها (12) به معنای نسخه log4j است. در این مورد، نسخه slf4j-api و slf4j-log4j12 باید 1.7.30 باشد - آخرین نسخه پایدار در حال حاضر. بعد از اینکه وابستگی ها را متصل کردید و پروژه Maven را به روز کردید. برای اینکه log4j کار کند، به 2 چیز دیگر نیاز دارید: 1) یک فایل پیکربندی تنظیم کنید. می خوانیم، انتخاب می کنیم، کپی می کنیم. 2) قبل از کار پیکربندی log4j را بخوانید:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
خوب، یا جایی که شما فایل را دارید. اگر می‌خواهید همه گزارش‌ها را ببینید، فراموش نکنید که سطح گزارش را روی ALL تنظیم کنید. ما به رزومه اضافه می کنیم - log4j & slf4j. تو خوشگلی! اگر کمک کرد - لایک کنید، مشترک شوید، زنگ بزنید!)))
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION