loggerFactor.AddNLog 过时处理(.net core 3.1)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

背景:ConfigureExtensions.AddNLog(ILoggerFactory)”已过时:“Instead use ILoggingBuilder.AddNLog() or IHostBuilder.UseNLog(),发现这个方法过时了


提示:以下是本篇文章正文内容,下面案例可供参考

一、发现问题

如下图:

在这里插入图片描述

二、解决问题

1.根据提示使用ILoggingBuilder替换ILoggerFactory

原代码如下(示例):

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactor)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            //加载Nlog的nlog.config配置文件
            LogManager.LoadConfiguration("Config/nlog.config");
            //添加NLog
            loggerFactor.AddNLog();
            app.UseRouting();
        
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
           
        }

修改后代码如下(示例):

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggingBuilder loggerFactor)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            //加载Nlog的nlog.config配置文件
            LogManager.LoadConfiguration("Config/nlog.config");
            //添加NLog
            loggerFactor.AddNLog();
            app.UseRouting();
        
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
           
        }

截图效果:
在这里插入图片描述

2.运行测试项目

代码如下(示例):

dotnet StudyCore.dll --ip 127.0.0.1 --port 9001

运行错误(示例):
在这里插入图片描述
查阅相关资料截图
在这里插入图片描述
在这里插入图片描述
参考资料网址:

  1. https://stackoverflow.com/questions/58969904/could-not-resolve-a-service-of-type-microsoft-extensions-logging-iloggingbuilde
  2. https://stackoverflow.com/questions/53844561/no-service-for-type-microsoft-extensions-logging-iloggingbuilder-has-been-regi
  3. https://blog.csdn.net/sd7o95o/article/details/81350638

3.修改Program类和Startup类代码

Program类代码如下(示例):

   public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
              #region 日志代码
             .ConfigureLogging((ILoggingBuilder logBuilder) =>
             {
                 logBuilder.AddNLog();
                 logBuilder.AddConsole();
                 //logBuilder.confi            
                 NLog.LogManager.LoadConfiguration("Config/nlog.config");
             })
              #endregion

                .ConfigureWebHostDefaults(webBuilder =>
                {
                    var config = new ConfigurationBuilder()
                         .AddCommandLine(args)
                         .Build();
                    String ip = config["ip"];
                    String port = config["port"];
                    webBuilder
                    .UseStartup<Startup>()
                    .UseUrls($"http://{ip}:{port}")
                    ;
                });

Startup类代码如下(示例):

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            //加载Nlog的nlog.config配置文件
            //LogManager.LoadConfiguration("Config/nlog.config");
            添加NLog
            //loggerFactor.AddNLog();
            app.UseRouting();
        
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
           
        }

4.测试运行

在这里插入图片描述
在这里插入图片描述


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值