Это то, что я использую (но я использую log4net, но я думаю, это то же самое)
.trace () - используется для записи таких вещей, как вход и выход из функции, а также огромные наборы данных
for(a in l) { trace("List contents: "+ a) }
.debug () - это печать 1 (одной) строки информации, полной при рассмотрении ветви.
Вы можете иметь несколько операторов отладки в одной функции, но не одну строку pr.
Когда вы читаете операторы отладки, он должен читаться как краткая версия
функция.
.debug("Checking if current account {} for user {} has more than {} amount", amount);
.debug("Account criteria met for account {} for user {}; making withdrawel of {}", otheramount);
.debug("Account {} debited by {} amount. Transaction key {}");
Каждая строка отладки должна стоять отдельно и содержать всю информацию, необходимую для ее понимания. Нет смысла читать строку «Проверка уровня аккаунта», потому что следующим вопросом будет какой аккаунт? какой пользователь? какая сумма?
.info () - Максимум 1 или две функции pr и только в области высокого уровня. Данные должны быть полными.
.info("Withdrawel procecss complete for account {}, user {}, for amount {}");
.warn () - некритические ошибки, данные завершены, так что вы можете передать их в почтовый регистратор и периодически проверять этот почтовый ящик.
.error () - то же, что и предупреждение, но более важно. Пользователь был активно заблокирован от достижения своей цели, поэтому вы хотите просматривать его чаще.
.fatal () - Должен идти напрямую на пейджер sysadm, если возможно, с информацией о имени сервера / машины.
Кроме того, убедитесь, что у каждого класса есть собственный регистратор, основанный на этом классе, чтобы вы могли легко включать и выключать журналы для определенных областей кода, даже во время выполнения.