Подтвердить что ты не робот

Какую информацию следует включать на каждом уровне журнала?

Возможные дубликаты:
Где/на каком уровне должен регистрироваться код? Уровни отладки

Есть ли соглашение, стандартное или широко используемое руководство, которое поможет при регистрации на Java? В частности, что включать на каждом уровне (verbose, debug,... и т.д.), А не фактический механизм ведения журнала.

Есть много руководств о том, что включать на каждом уровне журнала, но ни один из них не является конкретным; они все расплывчаты, и это затрудняет "выполнение приказов".

Любые советы будут оценены.

4b9b3361

Ответ 1

Он подчиняется личной интерпретации, но мой (в порядке от наивысшего к курсу):

  • Трассировка. Самый лучший уровень ведения журнала. Может использоваться для записи очень конкретной информации, которая имеет отношение только к истинному сценарию отладки, например, регистрировать каждый доступ к базе данных или каждый HTTP-вызов и т.д.
  • Отладка. Информация для первичной помощи позволяет отлаживать вашу программу. Например, регистрируйте каждый раз, когда подпрограмма дозирования опустошает свою партию или создается новый файл на диске и т.д.
  • Информация - общий поток приложений, например "Запуск приложения", "подключение к db", "регистрация...". Короче говоря, информация, которая должна помочь любому наблюдателю понять, что делает приложение в целом.
  • Предупреждение. Предупреждает об ошибках, которые можно восстановить. Например, не удается проанализировать дату или использовать небезопасную процедуру. Обратите внимание, что мы должны по-прежнему пытаться подчиниться быстрому принципу сбоя и не скрывать, например, ошибки конфигурации, используя предупреждающее сообщение, даже несмотря на то, что приложение по умолчанию может быть предоставлено приложением.
  • Ошибка. Указывает часто неисправимую ошибку. Например, не удается открыть соединение с базой данных.
  • Fatal/Critical. Используется для регистрации ошибки, от которой приложение не может восстановиться, что может привести к немедленному завершению программы.

В конце концов, вам решать, что вам лучше всего подходит. Лично я запускаю большую производственную систему с уровнем ведения журнала Info, где меня больше всего интересует основная логика приложений и, конечно же, улавливает все предупреждения/ошибки.

За исключением перекосов кода, нет такой вещи, как слишком много протоколирования. Все записи, которые помогают вам лучше воспроизводить или понимать проблемы, - это хороший учет. В примечании к производительности большинство систем ведения журналов (например, log4j) позволяет настроить, какой уровень фактически добавить к физическому журналу, который является отличным вещь.

Ответ 2

Для чего мы стоим, мы используем следующие уровни журнала:

  • Сообщения уровня DEBUG дают очень подробную и/или конкретную информацию, полезную только для устранения проблем.
  • Информационные сообщения предоставляют общую информацию о том, что делает система. (например, файл обработки X)
  • Предупреждающие сообщения предупреждают пользователя о вещах, которые не идеальны, но не должны влиять на систему. (например, конфигурация X пропущена, используя значение по умолчанию)
  • Сообщения ERROR сообщают пользователю, что что-то пошло не так, но система должна быть в состоянии справиться. (например, соединение потеряно, но повторите попытку)
  • КРИТИЧЕСКИЕ сообщения сообщают пользователю о возникновении ошибки, не подлежащей возмещению. (т.е. я собираюсь прервать текущую задачу или сбой)

Я думаю, что самое главное с уровнями журналов - это выяснить схему, документировать ее и придерживаться ее. Несмотря на то, что уровень журналов, совместимый между программами, будет приятным, если вы используете здравый смысл при определении уровней журнала, пользователи будут терпеть определенную дисперсию между программами.

Ответ 3

Простой журнал о том, что думает yuo, важно, если вы вернетесь позже и вам нужно будет прочитать журналы. Это, конечно, означает, что ваши объекты Object.toStrings теперь должны быть приятными и читабельными, а не дампом дерьма, который невозможно прочитать. Это также означает, что вам нужно делать разумные вещи, такие как цитирование строк и т.д.