针对WCF服务的Log4net PatternLayout问题

时间:2013-11-13 23:24:17

标签: wcf log4net log4net-configuration log4net-appender

我正在使用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 个答案:

答案 0 :(得分:0)

你的亲密,但并不完全。请参阅以下链接中的“上下文属性”部分,了解如何实现此目的。

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

另请注意,在调用XmlConfigurator.Configure();

之前,您将要执行此操作。

HTH, 埃里克

答案 1 :(得分:0)

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

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

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

web.config更改:

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

希望这可以帮助有人找这个。