Log.INFO проти Log.DEBUG [закрито]


96

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

Відповіді:


132

Зазвичай я намагаюся використовувати його так:

  • ДЕБУГ: Інформація, цікава для розробників, при спробі налагодити проблему.
  • ІНФОРМАЦІЯ: Інформація, цікава для персоналу служби підтримки, який намагається з’ясувати контекст даної помилки
  • ПОПЕРЕДЖЕННЯ ФАТАЛУ: Проблеми та помилки залежно від рівня шкоди.

чи можна вмикати ІНФО завжди у виробництві, чи це матиме вплив на продуктивність?
pinkpanther

1
Це залежить .. (Мені подобається така відповідь) Факторами, які потрібно врахувати, є: 1. Кількість рядків інформаційного журналу 2. Налаштування журналу (куди потрапляють ваші рядки реєстрації?) 3. Доступна обробка та живлення відповідні системи.
nfechner

1
І пам’ятайте, що чим більше шуму, тим складніше виявити проблеми. З plumberjack.blogspot.be/2010/09/… :> Як і у філософії Unix, програмне забезпечення не повинно бути надмірно багатослівним, за винятком випадків, коли це має бути або про це вимагається . (чому я не можу це цитувати?)
axd

38

Налагодження : деталізовані оператори щодо стану програми, які зазвичай використовуються для налагодження;

Інформація : інформаційні заяви щодо стану програми, що представляють події програми або відстеження поведінки;

Попередження : заяви, що описують потенційно шкідливі події або стани в програмі;

Помилка : твердження, що описують не фатальні помилки в додатку; цей рівень досить часто використовується для реєстрації винятків, що обробляються;

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

Знайдено на http://www.beefycode.com/post/Log4Net-Tutorial-pt-1-Getting-Started.aspx


Чи слід сприймати помилки, спричинені введенням користувача, як попередження чи помилки? (IE Неправильне ім'я користувача чи пароль)
Stevoisiak

@ Stevoisiak на основі його відповіді, я думаю, це слід розглядати як інформацію.
aderchox

9

Крім того, пам'ятайте , що все info(), error()і debug()реєструють виклики забезпечують внутрішню документацію будь-якої програми.


Я вважаю, що це хороший момент. Наприклад, log.info("parse the widget text; ignore contents of 'foo'")служить корисною документацією під час читання коду, хоча це також оператор журналу.
Тушковане м'ясо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.