2013-11-13 4 views
1

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

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); 

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

ответ

0

Я понял, что САШ-контекст не работает в этом случае.

Таким образом, мы должны использовать свойства контекста, как показано ниже:

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

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

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

Надеется, что это помогает кто-то ищет это.

0

Ваше близкое, но не совсем там. См. Раздел «Свойства контекста» в следующей ссылке о том, как этого достичь.

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

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

НТН, Эрик

Смежные вопросы