Вы предоставляете уровень ведения журнала DEBUG для частных методов? - PullRequest
0 голосов
/ 29 декабря 2010

Я добавляю логи для классов Java. В частности, logger.debug уровень (для режима разработки).

Что касается приватных методов, вызываемых в публичных, есть смысл предоставлять логив частных методах?Это эффективно?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 29 декабря 2010

Это не обязательно вопрос эффективности или нет. Вы должны спросить себя: «Этот частный метод делает что-то достойное регистрации?»

Чтобы избежать проблем с производительностью, вы всегда можете проверить регистратор, будет ли он записывать отладочные сообщения, прежде чем регистрировать эти сообщения. В log4j вы бы написали

if (logger.isDebugEnabled()) {
  logger.debug("complicated" + "innefficient" + "string concatenation");
}

Я полагаю, другие регистраторы предоставляют аналогичные понятия

1 голос
/ 29 декабря 2010

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

Тем не менее, если по какой-либо причине вас беспокоит производительность, вы можете использовать некоторые простые средства защиты, чтобы уменьшить накладные расходы на ведение журналов, особенно отладочных журналов, которые редко включаются,Например, с помощью log4j / slf4j вы можете обернуть операторы отладки журнала в:

if(logger.isDebugEnabled()) {
    logger.debug("something");
}

slf4j дополнительно имеет синтаксис, похожий на printf, который выполняет форматирование строки только при правильном уровне журнала.

Как прокомментировал darioo, эта вторая форма избавила от необходимости проверять уровень журнала перед оператором журнала.

1 голос
/ 29 декабря 2010

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

1 голос
/ 29 декабря 2010

да, если вы хотите "отладить" ваши личные методы в режиме обслуживания или разработки, почему бы и нет? в процессе работы вы будете устанавливать уровень ведения журнала либо в виде предупреждения, либо в случае ошибки! это ваше дело ...

...