Домой Учебники по Java и J2EE Что такое Logback.xml Logging Framework? Пример ConsoleAppender, FileAppender и RollingFileAppender

Что такое Logback.xml Logging Framework? Пример ConsoleAppender, FileAppender и RollingFileAppender

1495
0

Знаете ли вы о Logback Logging Framework ? Ну, большинство людей в основном используют log4j and slf4j в их проект. С прошлых 6 месяцев я использую Logback.xml каркас ведения журналов, и я бы сказал, что я увидел довольно много улучшений производительности в моем производственном приложении.

В этом уроке мы рассмотрим практический пример каркаса Logback Logging.

Что такое logback.qos.ch?

Logback — это новая версия Log4j. Он был разработан с того места, где остановилась разработка log4j.

На Crunchify мы опубликовали несколько руководств по Log4j, если вы заинтересованы:

Здесь мы рассмотрим все подробные шаги по настройке Logback Logging Framework для вашего корпоративного Java-проекта . Мы собираемся создать ниже новые файлы.

  1. В папке ресурсов logback.xml файл
  2. Класс Java CrunchifyLogbackLogging.java

Давайте начнем

Шаг 1 Создайте файл logback.xml

logback.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
xml version = 1.0 encoding = UTF-8 ?>
< конфигурация >
< appender name = CRUNCHIFYOUT class = ch.qos.logback.core.ConsoleAppender >
< layout class = ch.qos.logback.classic.PatternLayout >
< Pattern > % d { ЧЧ : мм : сс . SSS } [ % thread ] % — 5 уровень % logger { 36 }
% X { sourceThread } % msg % n < / Pattern >
< / layout >
< / appender >
< appender name = CRUNCHIFYFILE class = ch.qos.logback.core.FileAppender >
< файл > / Users / ashah / Documents / crunchify . журнал < / file >
< кодировщик >
< шаблон > % дата % уровень [ % thread ] % logger { 10 } [ % file : % line ] % msg % n < / pattern >
< / encoder >
< / appender >
< appender name = CRUNCHIFYROLLING class = ch.qos.logback.core.rolling.RollingFileAppender >
< файл > / Users / ashah / Documents / crunchifyпереходящий . журнал < / file >
< encoder class = ch.qos.logback.classic.encoder.PatternLayoutEncoder >
< Шаблон >
% d { ггггММдд ЧЧ : мм : сс } [ % thread ] % уровень % logger { 35 } % msg % n
< / Pattern >
< / encoder >
< RollPolicy class = ch.qos.logback.core.rolling.TimeBasedRollingPolicy >
< ! Мы переворачивание ежедневно >
< fileNamePattern > crunchify . войти. timeroll. % d { ггггММдд } . журнал < / fileNamePattern >
< ! держать 10 дней стоит истории ограничен в 1GB общий размер >
< maxHistory > 10 < / maxHistory >
< totalSizeCap > 1 ГБ < / totalSizeCap >
< / RollingPolicy >
< / appender >
< ! дефолт является DEBUG >
< root level = DEBUG >
< appenderref ref = CRUNCHIFYOUT / >
< appenderref ref = CRUNCHIFYFILE / >
< appenderref ref = CRUNCHIFYROLLING / >
< / root >
< / configuration >

Давайте сначала разберемся с файлом logback.xml.

  • В нижней части файла вы видите 3 ссылки на приложения appender-ref под root элемент.
  • Мы используем уровень журнала как DEBUG , Это означает, что печатать все с уровнем DEBUG и выше.

CRUNCHIFYOUT appender имеет класс ch.qos.logback.core. ConsoleAppender , Это означает, что все данные журналов будут распечатаны в Eclipse Console .

CRUNCHIFYFILE имеет тип ch.qos.logback.core. FileAppender , Это означает, что все данные журналов также будут напечатаны в локальный файл . В нашем случае это / Users / ashah / Documents / crunchify.log ,

CRUNCHIFYROLLING имеет тип ch.qos.logback.core.rolling. RollingFileAppender , Как вы видите в RollingPolicy, мы обновляем файлы каждый день и сохраняем максимум 10 файлов. Кроме того, существует ограничение на общий размер файла, которое 1 GB в нашем примере. Новый файл будет создан в папке / Users / ashah / Documents / crunchify-rolling.log ,

Шаг 2 Напишите программу на Java, чтобы протестировать ее.

CrunchifyLogbackLogging.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
пакет crunchify. ком . учебник ;
импорт орг . slf4j . Регистратор ;
импорт орг . slf4j . LoggerFactory ;
/ **
* @author Crunchify.com
* Программа: Очень простой тестовый класс Logback.xml с ConsoleAppender, FileAppender и RollingFileAppender.
* Версия: 1.0.0
*
* /
общественности учебный класс CrunchifyLogbackLogging {
частный окончательный Logger crunchifyLogging знак равно LoggerFactory . getLogger ( CrunchifyLogbackLogging . class ) ;
общественности статический недействительным main ( Строка [ ] аргументы ) {
CrunchifyLogbackLogging crunchifyLogger знак равно новый CrunchifyLogbackLogging ( ) ;
crunchifyLogger . getStartedwithLogBackTesting ( ) ;
}
частный недействительным getStartedwithLogBackTesting ( ) {
за ( int я знак равно 1 ; я < = 10 ; я ++ ) {
crunchifyLogging . debug ( …… Это тест Crunchify при выходе из системы DEBUG …… ) ;
crunchifyLogging . info ( …… Это тест Crunchify при входе в систему INFO …… ) ;
crunchifyLogging . ошибка ( «…… Это проверка Crunchify при ошибке обратной связи ……» ) ;
crunchifyLogging . warn ( …… Это тест Crunchify при выходе из системы WARN …… ) ;
}
}
}

Это очень простой класс Java Test , в котором мы используем error, info, debug и warn все 4 уровня ведения журнала. Мы перебираем 10 раз.

Шаг 3

Как только вы запустите вышеуказанную программу, logback Framework создаст два новых файла, как упомянуто выше.

Оформите вашу Консоль Eclipse. Вы увидите ниже журналы:

Eclipse Console Log

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
15 : 36 : 12 , 978 |ИНФО в глава Qos . выход . классический. LoggerContext [по умолчанию ] Могли НЕ найти ресурс [ logbackтест . xml ]
15 : 36 : 12 , 978 |ИНФО в глава Qos . выход . классический. LoggerContext [по умолчанию ] Могли НЕ найти ресурс [ выход . отличный ]
15 : 36 : 12 , 978 |ИНФО в глава Qos . выход . классический. LoggerContext [по умолчанию ] Найденный ресурс [ выход . xml ] в [ file : / Users / ashah / Documents / site / Bitbucket / crunchifytutorials / target / classes / logback . xml ]
15 : 36 : 13 , 077 |ИНФО в глава Qos . выход . классический. Джоран . действие . ConfigurationAction атрибут отладки не задавать
15 : 36 : 13 , 077 |ИНФО в глава Qos . выход . ядро. Joran. действие . AppenderAction О к инстанцирует Appender типа [Гл. Qos . выход . ядро. ConsoleAppender ]
15 : 36 : 13 , 087 |ИНФО в глава Qos . выход . ядро. Joran. действие . AppenderAction Именование appender as [ CRUNCHIFYOUT ]
15 : 36 : 13 , 143 |ВНИМАНИЕ в глава Qos . выход . ядро. ConsoleAppender [ CRUNCHIFYOUT ] это заявитель больше не признает макет как к югукомпонент, установить вместо кодер.
15 : 36 : 13 , 143 |ВНИМАНИЕ в глава Qos . выход . ядро. ConsoleAppender [ CRUNCHIFYOUT ] к обеспечить совместимость , упаковка вашего макета в LayoutWrappingEncoder .
15 : 36 : 13 , 143 |ВНИМАНИЕ в глава Qos . выход . ядро. ConsoleAppender [ CRUNCHIFYOUT ] См. Также http : //logback.qos.ch/codes.html#layoutInsteadOfEncoder для получения подробной информации.
15 : 36 : 13 , 144 |ИНФО в глава Qos . выход . ядро. Joran. действие . AppenderAction О к инстанцирует Appender типа [Гл. Qos . выход . ядро. FileAppender ]
15 : 36 : 13 , 147 |ИНФО в глава Qos . выход . ядро. Джоран . действие . AppenderAction Именование appender as [ CRUNCHIFYFILE ]
15 : 36 : 13 , 147 |ИНФО в глава Qos . выход . ядро. Джоран . действие . NestedComplexPropertyIA Принимая по умолчанию тип [Гл. Qos . выход . классический. кодировщик . PatternLayoutEncoder ] за [ кодировщик ] имущество
15 : 36 : 13 , 148 |ИНФО в глава Qos . выход . ядро. FileAppender [ CRUNCHIFYFILE ] Свойство файла является установить на [ / Users / ashah / Documents / crunchify . журнал ]
15 : 36 : 13 , 151 |ИНФО в глава Qos . выход . ядро. Joran. действие . AppenderAction О к инстанцирует Appender типа [Гл. Qos . выход . ядро. прокатки. RollingFileAppender ]
15 : 36 : 13 , 152 |ИНФО в глава Qos . выход . ядро. Joran. действие . AppenderAction Именование appender as [ КРУНЧИФИРОЛЛИНГ ]
15 : 36 : 13 , 159 |ИНФО в с . кв. л. ядро. прокатки. TimeBasedRollingPolicy @ 2096171631 установка totalSizeCap в 1 гигабайт
15 : 36 : 13 , 161 |ИНФО в с . кв. л. ядро. прокатки. TimeBasedRollingPolicy @ 2096171631 Сжатие не будет использоваться
15 : 36 : 13 , 163 |ИНФО в с . кв. л. ядро. прокатки. TimeBasedRollingPolicy @ 2096171631 Будем использовать шаблон crunchify. войти. timeroll. % d { ггггММдд } . войти для активный файл
15 : 36 : 13 , 166 |ИНФО в с . кв. л. ядро. прокатки. DefaultTimeBasedFileNamingAndTriggeringPolicy Узор дата 'YYYY-MM-дд' из шаблона имени файла 'crunchify.log.timeroll.% d {yyyy-MM-dd} .log' .
15 : 36 : 13 , 166 |ИНФО в с . кв. л. ядро. прокатки. DefaultTimeBasedFileNamingAndTriggeringPolicy Роллсвыше в полночь.
15 : 36 : 13 , 171 |ИНФО в с . кв. л. ядро. прокатки. DefaultTimeBasedFileNamingAndTriggeringPolicy Установка начального периода в Чт сен 07 11 : 42 : 27 CDT 2017
15 : 36 : 13 , 173 |ИНФО в глава Qos . выход . ядро. прокатки. RollingFileAppender [ CRUNCHIFYROLLING ] Имя активного файла журнала : / Пользователи / Ашах / Документы / crunchifyпрокат . журнал
15 : 36 : 13 , 173 |ИНФО в глава Qos . выход . ядро. прокатки. RollingFileAppender [ CRUNCHIFYROLLING ] Свойство файла является установить на [ / Users / ashah / Documents / crunchifyпрокат . журнал ]
15 : 36 : 13 , 173 |ИНФО в глава Qos . выход . классический. Joran. действие . RootLoggerAction Настройка уровня ROOT регистратора для DEBUG
15 : 36 : 13 , 174 |ИНФО в глава Qos . выход . ядро. Джоран . действие . AppenderRefAction Прикрепление appender по имени [ CRUNCHIFYOUT ] в Logger [ ROOT ]
15 : 36 : 13 , 174 |ИНФО в глава Qos . выход . ядро. Joran. действие . AppenderRefAction Прикрепление appender по имени [ CRUNCHIFYFILE ] в Logger [ ROOT ]
15 : 36 : 13 , 174 |ИНФО в глава Qos . выход . ядро. Joran. действие . AppenderRefAction Прикрепление appender по имени [ КРУНЧИФИРОЛЛИНГ ] в Logger [ ROOT ]
15 : 36 : 13 , 174 |ИНФО в глава Qos . выход . классический. Joran. действие . ConfigurationAction Конец конфигурации.
15 : 36 : 13 , 175 |ИНФО в глава Qos . выход . классический. Joran. JoranConfigurator @ 7e0babb1 Регистрация текущей конфигурации как безопасная точка возврата
15 : 36 : 13.181 [ главная ] DEBUG с . с . учебник . CrunchifyLogbackLogging
, , , , , , это испытание Crunchify на Logback DEBUG. , , , , ,
15 : 36 : 13.186 [ главная ] ИНФОРМАЦИЯ    с . с . учебник . CrunchifyLogbackLogging
, , , , , , это тест Crunchify при входе в систему INFO . , , , , ,
15 : 36 : 13.187 [ главная ] ОШИБКА с . с . учебник . CrunchifyLogbackLogging
, , , , , , это испытание Crunchify на Logback ERROR. , , , , ,
15 : 36 : 13.187 [ главная ] WARN    с . с . учебник . CrunchifyLogbackLogging
, , , , , , это испытание Crunchify на Logback WARN. , , , , ,
15 : 36 : 13.188 [ главная ] DEBUG с . с . учебник . CrunchifyLogbackLogging
, , , , , , это испытание Crunchify на Logback DEBUG. , , , , ,
15 : 36 : 13.188 [ главная ] ИНФОРМАЦИЯ    с . с . учебник . CrunchifyLogbackLogging
, , , , , , это тест Crunchify при входе в систему INFO . , , , , ,
15 : 36 : 13.188 [ главная ] ОШИБКА с . с . учебник . CrunchifyLogbackLogging
, , , , , , это испытание Crunchify на Logback ERROR. , , , , ,
15 : 36 : 13.188 [ главная ] WARN    с . с . учебник . CrunchifyLogbackLogging
, , , , , , это испытание Crunchify на Logback WARN. , , , , ,

В дополнение к этому вы также можете проверить локальные журналы файлов и, как вы видите, logback.xml Файл создал все новые файлы и начал печатать журналы внутри него.

ЧИТАТЬ ТАКЖЕ:  Как создать проект Java, включая все зависимости, используя Maven? плагины maven-resources, maven-dependency и maven-jar

Приятного просмотра, у вас правильно настроен logback.xml и все 3 приложения: ConsoleAppender, FileAppender, RollingFileAppender.

Бонусный балл:

Вы хотите настроить RollingFileAppender с FixedWindowRollingPolicy ? Хорошо используйте ниже appender и поместите его в файл logback.xml, и у вас все должно быть хорошо

logback.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
< appender name = CRUNCHIFYROLLINGFIXEDWINDOW class = ch.qos.logback.core.rolling.RollingFileAppender >
     < файл > / Users / ashah / Documents / crunchifyrollingfixwindows . журнал < / file >
     < encoder class = ch.qos.logback.classic.encoder.PatternLayoutEncoder >
         < шаблон > % дата % уровень [ % thread ] % logger { 10 } [ % file : % line ] % msg % n < / pattern >
     < / encoder >
     < RollPolicy class = ch.qos.logback.core.rolling.FixedWindowRollingPolicy >
         < FileNamePattern > crunchify . войти. фиксированный размер . { ггггММдд } % я . журнал < / FileNamePattern >
         < MinIndex > 1 < / MinIndex >
         < MaxIndex > 15 < / MaxIndex >
     < / RollingPolicy >
     класс = ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy>
         < MaxFileSize > 20 МБ < / MaxFileSize >
     < / triggeringPolicy >
< / appender >

Также просто добавьте appender-ref под корневым элементом .

1
< appenderref ref = CRUNCHIFYROLLINGFIXEDWINDOW / >
Что такое Logback.xml Logging Framework? Пример ConsoleAppender, FileAppender и RollingFileAppender

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь