Similar presentations:
0f668043-62a5-4161-9e1f-f2545338e2cd
1.
Slf4j-ді log4j-мен біріктіру.2.
Java бағдарламасында тиімді логингжүйесін құру өте маңызды. Жүйенің
жұмысын бақылау, қателерді талдау және
әртүрлі операциялар мен оқиғаларды
тіркеу
үшін
лог
хабарламалары
қолданылады. Бұл мақсатқа жету үшін
Java-да көптеген логинг кітапханалары
бар, оның ішінде ең танымалдары:
3.
•SLF4J (Simple Logging Facade for Java) – Javaдағы логинг жүйелерінің абстракциясы. Олнақты логгерлердің алдында интерфейс
қызметін атқарады және көптеген лог
жүйелерімен интеграциялауға мүмкіндік береді.
•Log4j2 – Apache жобасы, жоғары өнімділікке
ие кең тараған логинг жүйесі. Log4j2 жүйесі
түрлі конфигурация мүмкіндіктері мен жоғары
жылдамдығымен ерекшеленеді.
4.
SLF4J мен Log4j2-нің бірігуі SLF4J интерфейсінпайдалану арқылы Log4j2 жүйесінің
мүмкіндіктерін қолдануға мүмкіндік береді. Бұл
лекцияда біз SLF4J және Log4j2-ні біріктіру әдісін
қарастырамыз.
5.
SLF4J және Log4j2-ге жалпы шолуSLF4J дегеніміз не?
SLF4J – бұл Java-дағы лог жүйелерінің абстракцияланған
интерфейсі. SLF4J тек интерфейсті ұсынады, яғни ол нақты
логгерлермен (мысалы, Log4j2, java.util.logging, etc.) жұмыс істей алады.
Оның басты артықшылығы – жүйе логгерін оңай ауыстыруға мүмкіндік
береді.
SLF4J-дің негізгі артықшылықтары:
•Лог жүйелерінің ауысуы жеңіл болады (мысалы, Log4j2-ден
java.util.logging-ке).
•Логгер деңгейлері (мысалы, info, debug, error) стандартты интерфейс
бойынша жұмыс істейді.
•Әртүрлі лог жүйелерімен интеграцияны қамтамасыз етеді.
6.
Log4j2 дегеніміз не?Log4j2 – бұл Java үшін жоғары өнімді,
конфигурацияланатын және кеңейтілетін лог жүйесі. Log4j2нің басты ерекшеліктері:
•Жоғары өнімділік: Асинхронды жазу мен Log4j2-нің
жоғары жылдамдығы оны үлкен масштабты жүйелер үшін
тиімді етеді.
•Кешенді конфигурация: XML, JSON, YAML, және
properties форматында конфигурация жасау мүмкіндігі.
•Модульдік жүйе: Плагиндер арқылы функционалдығын
кеңейту мүмкіндігі.
7.
Log4j2 логгерінің негізгі компоненттері:•Appenders: Лог жазбаларын шығаруға
арналған компоненттер (мысалы, файлға жазу,
консольге шығару).
•Layouts: Лог хабарламаларын форматтау.
•Loggers: Лог хабарламаларын жазатын негізгі
компоненттер.
8.
SLF4J мен Log4j2 арасындағы байланысSLF4J интерфейсі арқылы лог хабарламаларын
жазып, Log4j2 жүйесін қолданатын боламыз. SLF4J
SLF4J-Log4j2 байланыс модулін қолдану арқылы
Log4j2-нің мүмкіндіктерін қолдана алады.
9.
SLF4J мен Log4j2-ні біріктіруSLF4J мен Log4j2-ні біріктіру үшін келесі қадамдарды орындау
қажет:
1. Тәуелділіктерді қосу
Жобаға SLF4J және Log4j2 тәуелділіктерін қосу керек. Бұл
үшін Maven немесе Gradle пайдалану арқылы қажетті
кітапханаларды жүктей аласыз.
10.
Maven тәуелділіктері:xml
<dependencies>
<!-- SLF4J API -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.0</version>
</dependency>
<!-- SLF4J-ді Log4j2-мен біріктіру үшін байланыс тәуелділігі -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>2.0.0</version>
</dependency>
<!-- Log4j2 тәуелділігі -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
<!-- Log4j2 SLF4J байланысатын тәуелділігі -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.20.0</version>
</dependency>
</dependencies>
11.
Gradle тәуелділіктері:gradle
dependencies {
// SLF4J API
implementation 'org.slf4j:slf4j-api:2.0.0'
// SLF4J-ді Log4j2-мен біріктіру
implementation 'org.slf4j:slf4j-log4j12:2.0.0'
// Log4j2 тәуелділігі
implementation
'org.apache.logging.log4j:log4j-core:2.20.0'
// Log4j2 SLF4J байланысатын тәуелділігі
implementation
'org.apache.logging.log4j:log4j-slf4jimpl:2.20.0'
}
12.
Конфигурация файлын жасауLog4j2 конфигурациясын жасау үшін log4j2.xml немесе
log4j2.properties файлын қолдануға болады. Біз XML конфигурациясын
қолданамыз. Бұл файлда Log4j2-нің лог деңгейлері мен аппендерлері
(мысалы, консольге жазу) анықталады.
log4j2.xml конфигурациясы:
xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<!-- Console аппендері -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %5level: %msg%n%throwable"/>
</Console>
</Appenders>
<Loggers>
<!-- Root logger -->
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
13.
SLF4J арқылы логгерді пайдалануЖоғарыда көрсетілген тәуелділіктер мен конфигурациялардан кейін,
SLF4J арқылы лог жазу үшін LoggerFactory классымен логгерді
жасаймыз.
Main.java:
java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
private static final Logger logger =
LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
logger.info("Бұл ақпараттық хабарлама!");
logger.warn("Бұл ескерту хабарламасы!");
logger.error("Бұл қате хабарламасы!");
try {
int result = 10 / 0;
} catch (Exception e) {
logger.error("Қате орын алды: ", e);
}
}
}
14.
Жүйені іске қосу1.Жоғарыда көрсетілген
тәуелділіктер мен
конфигурацияларды
жобада қолдана
отырып, жүйені іске
қосыңыз.
2.Консольде шыққан
лог хабарламаларын
тексеріңіз.
Лог деңгейлері
Log4j2 және SLF4J жүйесінде
бірнеше лог деңгейлері бар,
олардың ішінде:
•TRACE: Бағдарламаның өте төмен
деңгейдегі логтары.
•DEBUG: Бағдарлама күйін тексеру
үшін қолданылатын лог.
•INFO: Қолданушы үшін ақпараттық
хабарламалар.
•WARN: Ескерту хабарламалары.
•ERROR: Қате хабарламалары.
•FATAL: Жүйеде маңызды қателер.