Домой Учебники по Java и J2EE В Java Как создать свой собственный уровень ведения журнала с помощью Log4j...

В Java Как создать свой собственный уровень ведения журнала с помощью Log4j (Настройка Log4j 2)

793
0

Если вам нужно добавить собственный уровень ведения журнала в Log4j, то вы можете сделать это следующим образом. Вам придется создать свой собственный класс, который будет расширяться от Level , Custom Log Levels с Apache Log4j 2.

Log4j простой и гибкий logging framework , Ведение журнала предоставляет разработчику подробный контекст для сбоев приложений . С помощью log4j возможно включить ведение журнала во время выполнения без изменения двоичного файла приложения.

Пакет log4j разработан таким образом, что эти операторы могут оставаться в поставляемом коде без больших затрат производительности .

Log4j позволяет регистрировать запросы на печать по нескольким адресатам. В log4j говорят, выходное назначение называется appender , Они варьируются от консоли, файлов, компонентов графического интерфейса, удаленных серверов сокетов до JMS.

Jar File вам нужен.

Вот зависимость Maven:

log4j Maven Dependency

1
2
3
4
5
< зависимость >
< groupId > log4j < / groupId >
< artifactId > log4j < / artifactId >
< версия > 1.2.17 < / версия >
< / зависимость >

Вы должны положить log4j.xml файл под /resources папка:

Вот пример кода Java для:

  • Log4j Ведение журнала для пользовательских уровней журнала в Java
  • Создание собственного уровня регистрации в log4j
  • Пример пользовательского регистратора log4j

CrunchifyLog4jLevel.java

CrunchifyLog4jLevel.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
пакет ком . crunchify. учебные пособия ;
Импортировать орг. апач . log4j . Уровень ;
/ **
* @author Crunchify.com
*
* /
@SuppressWarnings ( серийный )
общественности учебный класс CrunchifyLog4jLevel продолжается уровень {
     / **
* Значение уровня CrunchifyLog4jLevel. Это значение меньше, чем DEBUG_INT и выше
* чем TRACE_INT}
* /
     общественности статический окончательный ИНТ CRUNCHIFY_INT знак равно DEBUG_INT 10 ;
     / **
* Уровень, представляющий мой уровень журнала
* /
     общественности статический окончательный Уровень ХРАНЧИФЫ знак равно новый CrunchifyLog4jLevel ( CRUNCHIFY_INT , Хруст , 10 ) ;
     / **
* Конструктор
* /
     защищенный CrunchifyLog4jLevel ( int arg0 , строка arg1 , ИНТ arg2 ) {
         супер ( arg0 , arg1 , arg2 ) ;
     }
     / **
* Проверяет, находится ли logArgument на уровне CRUNCHIFY. Если да, то возвращает
* CRUNCHIFY}, иначе вызывает CrunchifyLog4jLevel # toLevel (String, Level), передавая
Это уровень # DEBUG в качестве уровня по умолчанию.
* /
     общественности статический Уровень toLevel ( Строка logArgument ) {
         если ( logArgument ! знак равно ноль && logArgument.toUpperCase (). equals (CRUNCHIFY)) {
возврат CRUNCHIFY;
         }
         вернуть ( Уровень ) toLevel ( logArgument , Уровень. Отладка ) ;
     }
     / **
* Проверяет, является ли val CrunchifyLog4jLevel # CRUNCHIFY_INT. Если да то
* возвращает CrunchifyLog4jLevel # CRUNCHIFY, иначе вызывает
* CrunchifyLog4jLevel # toLevel (int, Level), передавая ему Level # DEBUG в качестве
* defaultLevel
*
* /
     общественности статический Уровень toLevel ( int val ) {
         если ( Val == CRUNCHIFY_INT ) {
             вернуть Хрустит ;
         }
         вернуть ( Уровень ) toLevel ( val , Уровень. Отладка ) ;
     }
     / **
* Проверяет, является ли val CrunchifyLog4jLevel # CRUNCHIFY_INT. Если да
* затем возвращает CrunchifyLog4jLevel # CRUNCHIFY, иначе вызывает Level # toLevel (int, org.apache.log4j.Level)
*
* /
     общественности статический Уровень toLevel ( int val , Уровень defaultLevel ) {
         если ( Val == CRUNCHIFY_INT ) {
             вернуть Хрустит ;
         }
         вернуть Уровень. toLevel ( val , defaultLevel ) ;
     }
     / **
* Проверяет, находится ли logArgument на уровне CRUNCHIFY. Если да, то возвращает
* CrunchifyLog4jLevel # CRUNCHIFY, иначе вызовы
* Level # toLevel (java.lang.String, org.apache.log4j.Level)
*
* /
     общественности статический Уровень toLevel ( Строка logArgument , Уровень defaultLevel ) {
         если ( logArgument ! знак равно ноль && logArgument.toUpperCase (). equals (CRUNCHIFY)) {
возврат CRUNCHIFY;
         }
         вернуть Уровень. toLevel ( logArgument , defaultLevel ) ;
     }
}

Другой должен прочитать:

ЧИТАТЬ ТАКЖЕ:  Что такое Java Collections Framework? Преимущества коллекций Framework?

Вот содержимое файла log4j.xml

log4j.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
xml version = 1.0 encoding = UTF-8 ?>
< ! DOCTYPE log4j: Конфигурация системы log4j.dtd >
< log4j : конфигурация xmlns : log4j = http://jakarta.apache.org/log4j/
     debug = false >
     < ! ФАЙЛ Appender >
     < appender name = FILE class = org.apache.log4j.FileAppender >
         < param name = Файл значение = c: /crunchify.log / >
         < param name = Append значение = ложь / >
         < layout class = org.apache.log4j.PatternLayout >
             < param name = ConversionPattern значение = % t% -5p% c -% m% n / >
         < / layout >
     < / appender >
     < ! CONSOLE Appender >
     < appender name = CONSOLE class = org.apache.log4j.ConsoleAppender >
         < layout class = org.apache.log4j.PatternLayout >
             < param name = ConversionPattern значение = % d {ISO8601}% -5p [% c {1}]% m% n / >
         < / layout >
     < / appender >
     < ! Предел категории и Укажите приоритет >
     < category name = com.crunchify >
         < priority value = CRUNCHIFY class = com.crunchify.tutorials.CrunchifyLog4jLevel / >
         < appenderref ref = CONSOLE / >
     < / категория >
     < ! Установка корневой категории >
     < root >
         < appenderref ref = CONSOLE / >
     < / root >
< / log4j : конфигурация >

CrunchifyLog4jLevelTest.java

CrunchifyLog4jLevelTest.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
пакет ком . crunchify. учебные пособия ;
Импортировать орг. апач . log4j . Уровень ;
Импортировать орг. апач . log4j . Регистратор ;
Импортировать ком . crunchify. учебники . CrunchifyLog4jLevel ;
/ **
* Проверяет, есть ли новый уровень журнала
* com.crunchify.tutorials.CrunchifyLog4jLevel # CRUNCHIFY} работает
*
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyLog4jLevelTest {
     общественности статический недействительным main ( Строка [ ] аргументы ) {
         Logger регистратор знак равно Logger. getLogger ( CrunchifyLog4jLevelTest . class ) ;
         регистратор. log ( CrunchifyLog4jLevel . CRUNCHIFY , Я — журнал CrunchifyLog4jLevelTest ) ;
         регистратор. log ( Level . DEBUG , «Я сообщение отладки» ) ;
     }
}

Запустите тестовую программу, и вы должны увидеть ниже тип результата в вашем Eclipse's Console ,

Выход

1
2
20130801 15 : 22 : 36 , 758 CRUNCHIFY [ CrunchifyLog4jLevelTest ] я am CrunchifyLog4jLevelTest log
20130801 15 : 22 : 36 , 758 DEBUG [ CrunchifyLog4jLevelTest ] я я Сообщение отладки

Значение int, которое вы указываете для уровня журнала, имеет важное значение. Здесь я определил « CRUNCHIFY Уровень журнала должен быть выше, чем DEBUG уровень, но ниже, чем TRACE уровень предоставлен log4j.

Поэтому всякий раз, когда вы устанавливаете уровень приоритета DEBUG для категории (в вашем log4j.xml файл), то CRUNCHIFY журналы уровня НЕ попадут в файл журнала.

В Java Как создать свой собственный уровень ведения журнала с помощью Log4j (Настройка Log4j 2)

0.00 (0%) 0 votes

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

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