4

有没有办法将 log4net 用作 Kentor Authservices Logger?文档指出“将 ILoggerAdapter 连接到您的 SPOptions.Logger。如果您使用的是 OWIN 中间件,这会自动为您完成,您可以在 OWIN/Katana 日志记录中看到输出。”,但我真的不明白是什么它的意思是。

4

1 回答 1

7

您将在 log4net 记录器和 Kentor.AuthServices 记录器之间编写一个适配器,如下所示:

public class log4netLoggerAdapter : Kentor.AuthServices.ILoggerAdapter
{
    private log4net.ILog _logger;

    public log4netLoggerAdapter(log4net.ILog logger)
    {
        _logger = logger;
    }

    public void WriteError(string message, Exception ex)
    {
        _logger.Error(message, ex);
    }

    public void WriteInformation(string message)
    {
        _logger.Info(message);
    }

    public void WriteVerbose(string message)
    {
        _logger.Debug(message);
    }
}

然后将其实例分配给您的 AuthServices Options.SPOptions.Logger。例如,在SampleMVCApplication Global.asax.cs中,添加一行Application_Start

Kentor.AuthServices.Mvc.AuthServicesController.Options.SPOptions.Logger =
            new log4netLoggerAdapter(log4net.LogManager.GetLogger("AuthServices"));

最后一部分当然会有所不同,具体取决于您使用的模块以及加载配置的方式,但关键是将 an 分配ILoggerAdapter给您的SPOptions.Logger

于 2017-07-26T19:34:22.417 回答