1

我正在将 Log4Net 用于 WCF 服务。我希望将自定义参数“REQUESTID”传递给 log4net。

log4net 模式布局如下图:

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

</layout>

我在下面试过:

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

但它没有按预期工作。任何想法,将不胜感激。

4

2 回答 2

0

你的接近,但不完全在那里。有关如何实现此目的,请参阅以下链接中的“上下文属性”部分。

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

另请注意,您将要在调用 XmlConfigurator.Configure(); 之前执行此操作。

HTH,埃里克

于 2013-11-17T09:19:06.700 回答
0

我发现aspnet-context在这种情况下不起作用。

所以我们必须使用上下文属性,如下所示:

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

web.config 更改:

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

希望这可以帮助寻找这个的人。

于 2013-11-18T22:21:16.083 回答