IsDebugEnabled и Debug (действие <FormatMessageHandler>) - PullRequest
3 голосов
/ 12 января 2011

В общем ведении журнала V2.0 есть два способа избежать затрат на оценку сообщений, когда LogLevel выше, чем запись в журнале:

if (Log.IsDebugEnabled)
    Log.Debug("Debug message");

или

Log.Debug(a => a("Debug message"));

Какая практика лучше? Каковы плюсы и минусы?

1 Ответ

6 голосов
/ 12 января 2011

Согласно документации:

Использование лямбд, интерфейс ILog предлагает новый и безопасный способ записи журнала заявления

log.Debug( m=>m("value= {0}", obj.Value) );

Это гарантирует, что все выражение оценивается только тогда, когда LogLevel.Debug включен и, таким образом, избавляет вас от необходимости писать

if (log.IsDebugEnabled)
{
    log.Debug("value={0}", obj.Value);
}

чтобы избежать этих накладных расходов.

Так что второй вариант в вашем вопросе считается лучшей практикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...