Порядок ієрархії журналу log4j


169

Що таке ієрархія журналу log4j?

DEBUG
INFO
WARN
ERROR
FATAL

Який із них забезпечує найвищий обсяг журналу, який може бути корисним для усунення проблем? Чи може хтось із них надати порядок або ієрархію, в якій ведення журналу ведеться від найвищого до нижчого? Дякую!

Відповіді:


292

Ця таблиця може бути корисною для вас:

Рівень журналу

Спустившись у перший стовпець, ви побачите, як працює журнал на кожному рівні. тобто для WARN , ( FATAL, ERROR і WARN ) будуть видні. Для OFF , нічого не буде видно.


Умови видимості та елемента не пояснюють себе. Я бачу, що офіційна документація також щодо цього неясна. Метод виведення , такі як error, info, debugі т.д. з реєстратора призначає рівень пріоритету / тяжкості на повідомлення реєстрації. Якщо ведення журналу дійсно набуває чинності (повідомлення буде видимим) залежить від ефективного рівня журналу використовуваного журналу.
Вовк

1
посилання розірвано. виправте або видаліть
Юрін

Хоча це відповідає на питання (це просто запит на "ієрархічний порядок"), я нарешті відмовився від вашої поганої термінології: йде вниз , "видимість" працює , пункт . Ви не хотіли пояснити, як конфігурація реєстратора впливає на фактичний журнал (проходження подій журналу)? Розгляньте інше оновлення. ДО РЕЧІ: таблиця в офіційній документації (в кінці розділу) відрізняється в лікуванні OFFі ALL, ну, після прочитання деяких з джерела (не знайшовши особливих випадків) , я сумніваюся , що їх таблиця є правильним.
Вовк

Дякую, Вовче, я оновив відповідь відповідно до твоїх коментарів.
nxhoaf

2
Я думаю, що це відмінна візуалізація рівнів журналу та очікуваних типів повідомлень журналу, які будуть виведені для конкретних параметрів рівня реєстратора. Моя єдина пропозиція, можливо, матиме чергування кольорів рядків, щоб керувати глядачам, що діаграма повинна інтерпретуватися рядком, а не стовпцем. (тобто рядки представляють рівні реєстратора, а стовпці представляють типи повідомлень журналу, які були б присутні)
Ларрі Гектор,

149

Використовуйте силу, читайте джерело (уривок із Priority і Levelскомпільованої класу, рівень TRACE був введений у версії 1.2.12):

public final static int OFF_INT = Integer.MAX_VALUE;
public final static int FATAL_INT = 50000;
public final static int ERROR_INT = 40000;
public final static int WARN_INT  = 30000;
public final static int INFO_INT  = 20000;
public final static int DEBUG_INT = 10000;
public static final int TRACE_INT = 5000; 
public final static int ALL_INT = Integer.MIN_VALUE; 

або API log4j для Levelкласу , що робить це досить зрозумілим.

Коли бібліотека вирішує, друкувати певну заяву чи ні, вона обчислює ефективний рівень відповідального Loggerоб'єкта (на основі конфігурації) і порівнює його з LogEventрівнем 's (залежить від того, який метод був використаний у коді - trace / debug / ... / фатально ). Якщо LogEventрівень 's більший або дорівнює рівню Logger' s, то LogEventнадсилається до додатка (ив) - "надруковано". По суті, все зводиться до цілого порівняння, і ось ці константи приходять до дії.


56
OFF
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
ALL

1
Це суперечить інформації, наданій на tutorialspoint.com/log4j/log4j_logging_levels.htm, яка з них правдива ???
Майк


4
на вашому посиланні було сказано, що "ВСІ <ДЕБУГ <ІНФОРМАЦІЯ <ПОПЕРЕДЖЕННЯ <ПОМИЛКА <ФАТАЛЬНЕ <ВИКЛ.", і це абсолютно те саме, що я сказав
the.malkolm

6
Діаграма Venn OFF () ALL (TRACE (DEBUG (INFO (WARN (ПОМИЛКА))))))))))
Hernán Eche

@Mike на log4j Рівні реєстрації вони використовують алфавітний порядок у першій таблиці . За винятком зниклих trace, вони пізніше правильно заявляють, що ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF(де <значить менш важливо)
Вовк

24

Ієрархія рівнів реєстрації log4j наступна у найвищому до найнижчого порядку:

  • СЛІД
  • НАЛАГОДЖУВАТИ
  • ІНФО
  • УВАГА
  • ПОМИЛКА
  • FATAL
  • ВИКЛ

Рівень журналу TRACE забезпечує найвищу реєстрацію, що може бути корисною для усунення неполадок. Рівень журналу DEBUG також дуже корисний для усунення проблем.

Ви також можете посилатися на це посилання для отримання додаткової інформації про рівні журналів: https://logging.apache.org/log4j/2.0/manual/architecture.html


12

[Взяте з http://javarevisited.blogspot.com/2011/05/top-10-tips-on-logging-in-java.html]

DEBUG - це найнижчий рівень обмеженого журналу Java, і ми повинні написати все, що потрібно для налагодження програми, цей режим реєстрації Java повинен використовуватися лише в середовищі розробки та тестування і не повинен використовуватися у виробничих умовах.

INFO є більш обмеженим, ніж рівень ДЕБУГ журнального журналу, і ми повинні реєструвати повідомлення, які мають інформаційну ціль, як Сервер був запущений, Вхідні повідомлення, вихідні повідомлення та ін.

ПОПЕРЕДЖЕННЯ більш обмежено, ніж рівень реєстрації Java INFO, і використовується для реєстрації попереджувальних типів повідомлень, наприклад, з'єднання, втрачене між клієнтом та сервером. З'єднання з базою даних втрачено, Socket досягає своєї межі. Ці повідомлення та рівень реєстрації Java є майже важливими, оскільки ви можете налаштувати попередження щодо цих повідомлень реєстрації в java та дозволити вашій службі підтримки контролювати стан вашої програми java та реагувати на це попередження. Підсумковий рівень WARN використовується для реєстрації попереджувального повідомлення для входу в Java.

ПОМИЛКА є більш обмеженим рівнем реєстрації Java, ніж WARN, і використовується для реєстрації помилок та винятків, ви також можете налаштувати попередження на цьому рівні реєстрації Java та команду моніторингу сповіщень реагувати на ці повідомлення. ПОМИЛКА серйозна для входу в Java, і ви завжди повинні її друкувати.

Рівень реєстрації Java FATAL позначає дуже серйозні події помилок, які, імовірно, призведуть до того, що додаток перерветься. Після цього ваша програма збивається і припиняється.

Вимкнено рівень журнального журналу "Ява" має найвищий можливий ранг і призначений для вимкнення журналу в Java.


4

Ієрархічний порядок

  1. ВСІ
  2. СЛІД
  3. НАЛАГОДЖУВАТИ
  4. ІНФО
  5. УВАГА
  6. ПОМИЛКА
  7. FATAL
  8. ВИКЛ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.