【问题标题】:Kentor authservices and log4netKentor authservices 和 log4net
【发布时间】:2017-07-26 16:21:17
【问题描述】:

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

【问题讨论】:

    标签: logging single-sign-on log4net saml-2.0 kentor-authservices


    【解决方案1】:

    您将在 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"));
    

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

    【讨论】:

    • 这太棒了。应该是自己想出来的。谢谢。
    猜你喜欢
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多