C# 在WCF中使用Unity拦截进行日志记录的最佳方法

C# 在WCF中使用Unity拦截进行日志记录的最佳方法,c#,wcf,logging,unity-container,interception,C#,Wcf,Logging,Unity Container,Interception,我有一个WCF服务,我读到使用Unity拦截来做日志记录可能会很好。我希望将错误以及进入WCF应用程序的每个请求和响应都记录到数据库中。所以我计划创建一个日志类,我可以从我的LoggingInterceptionBehavior类调用它。最好让我的新日志类成为一个常规实例对象,然后在下面的代码中重新创建它,还是让它成为一个单例对象?以下是我的代码设置示例: class LoggingInterceptionBehavior : IInterceptionBehavior { publi

我有一个WCF服务,我读到使用Unity拦截来做日志记录可能会很好。我希望将错误以及进入WCF应用程序的每个请求和响应都记录到数据库中。所以我计划创建一个日志类,我可以从我的LoggingInterceptionBehavior类调用它。最好让我的新日志类成为一个常规实例对象,然后在下面的代码中重新创建它,还是让它成为一个单例对象?以下是我的代码设置示例:

 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吗?您是否从头开始创建记录器?如果是白手起家,你需要自己回答这个问题。