Мне любопытно, почему я вижу, как люди записывают logging-код log4net следующим образом:
if (_logger.IsDebugEnabled)
{
_logger.Debug("Some debug text");
}
Я прошел разборку для log4net, а вызов Debug вызывает другой вызов того же кода, чтобы увидеть, разрешено ли это до фактического ведения журнала, поэтому вызов IsDebugEnabled не нужен и фактически является дублированным кодом.
Есть ли причина, по которой люди это делают? Может быть, старый шаблон, который раньше был необходим в более старых версиях, но больше не существует? Или может быть законная причина для этого? Или, может быть, люди просто не знают, что им это не нужно?
Такое же поведение наблюдается и для других уровней (Info, Error, Warn, Finest и т.д.).