C# 在WCF中使用Unity拦截进行日志记录的最佳方法
我有一个WCF服务,我读到使用Unity拦截来做日志记录可能会很好。我希望将错误以及进入WCF应用程序的每个请求和响应都记录到数据库中。所以我计划创建一个日志类,我可以从我的LoggingInterceptionBehavior类调用它。最好让我的新日志类成为一个常规实例对象,然后在下面的代码中重新创建它,还是让它成为一个单例对象?以下是我的代码设置示例:C# 在WCF中使用Unity拦截进行日志记录的最佳方法,c#,wcf,logging,unity-container,interception,C#,Wcf,Logging,Unity Container,Interception,我有一个WCF服务,我读到使用Unity拦截来做日志记录可能会很好。我希望将错误以及进入WCF应用程序的每个请求和响应都记录到数据库中。所以我计划创建一个日志类,我可以从我的LoggingInterceptionBehavior类调用它。最好让我的新日志类成为一个常规实例对象,然后在下面的代码中重新创建它,还是让它成为一个单例对象?以下是我的代码设置示例: class LoggingInterceptionBehavior : IInterceptionBehavior { publi
class LoggingInterceptionBehavior : IInterceptionBehavior
{
public IMethodReturn Invoke(IMethodInvocation input,
GetNextInterceptionBehaviorDelegate getNext)
{
// Create a guid here to uniquely identify this call
// Save the request in some variable for logging
var result = getNext()(input, getNext);
//Call logging class here to log the request/response/error
return result;
}
无论你做什么,都不要让它成为一个单独的类。没有理由这么做。这里没有足够的信息来回答这个问题。新的记录器是什么?你在用log4net吗?您是否从头开始创建记录器?如果是白手起家,你需要自己回答这个问题。