美文网首页
.Net Core 日志框架 (二)

.Net Core 日志框架 (二)

作者: 寻找无名的特质 | 来源:发表于2021-08-21 05:57 被阅读0次

在使用依赖注入注册和获取日志服务时,可以在使用日志服务的类的构造函数中增加日志参数,然后在依赖注入服务中注册这个类,当通过容器获取实例时,容器可以将日志服务自动注入。比如下面的类:

namespace ConsoleDemo
{
    public class MyLog
    {
        private ILogger logger;
        public MyLog(ILogger<MyLog> logger)
        {
            this.logger = logger;
        }

        public void Log(string inf)
        {
            logger.LogInformation(inf);
        }
    }
}

还需要进行注册:

 private static ServiceProvider GetServiceProvider()
        {
            var services = new ServiceCollection();
            services.AddLogging(configure => configure.AddConsole());
            services.AddTransient<MyLog>();
            var provider = services.BuildServiceProvider();
            return provider;
        }

当获取这个类的实例后,可以使用日志服务:

            var provider = GetServiceProvider();
            var mylog = provider.GetService<MyLog>();
            mylog.Log("开始");

也可以将IServiceProvider传入到构造函数,在构造函数中获取实例:

    public class MyLog1
    {
        private ILogger logger;
        public MyLog1(IServiceProvider provider)
        {
            this.logger = provider.GetService(typeof(ILogger<MyLog1>)) as ILogger;
        }

        public void Log(string inf)
        {
            logger.LogInformation(inf);
        }
    }

相关文章

网友评论

      本文标题:.Net Core 日志框架 (二)

      本文链接:https://www.haomeiwen.com/subject/ctdobltx.html