Проблема с Log4net PatternLayout для службы WCF

Я использую Log4Net для службы WCF. Я хочу, чтобы пользовательский параметр "REQUESTID" был передан в log4net.

log4net patternlayout как показано ниже:

<layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level %-25aspnet-context{REQUESTID} %message%newline" />

</layout>

Я попробовал ниже:

OperationContext.Current.RequestContext.RequestMessage.Properties.Add("REQUESTID ",10001);

Но это не работает, как ожидалось. Любые идеи были бы хорошы.

2 ответа

Решение

Я понял, что aspnet-context в этом случае не работает.

Поэтому мы должны использовать свойства контекста, как показано ниже:

//log4net parameter for RequestId
log4net.GlobalContext.Properties["RequestId"] = requestId;

изменение web.config:

<conversionPattern value="%date %-5level %-25%property{RequestId} %message%newline" />

Надеюсь, это поможет кому-то, ищущему это.

Твои близкие, но не совсем там. См. Раздел "Свойства контекста" в следующей ссылке, чтобы узнать, как этого добиться.

http://logging.apache.org/log4net/release/manual/contexts.html

Также обратите внимание, что вы захотите сделать это перед вызовом XmlConfigurator.Configure ();

HTH, Эрик

Другие вопросы по тегам