亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復過時的 ILoggerFactory 方法?

如何修復過時的 ILoggerFactory 方法?

C#
函數式編程 2022-06-18 17:44:26
我將我的項目升級到 .NET Core 2.2.x 并收到關于以下代碼的過時警告 - 兩行:public void Configure(IApplicationBuilder app,                        IHostingEnvironment env,                        ILoggerFactory loggerFactory)    {     loggerFactory.AddConsole(Configuration.GetSection("Logging"));修復的建議是The recommended alternative is AddConsole(this ILoggingBuilder builder)。我以為這就是我正在使用的。我在這里想念什么?
查看完整描述

4 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

我今天有同樣的問題。


從 Startup.cs 中刪除您的日志記錄配置,然后轉到您的 Program.cs 文件并添加如下內容:


var host = new WebHostBuilder()

    .UseKestrel()

    .UseContentRoot(Directory.GetCurrentDirectory())

    .UseIISIntegration()

    .UseStartup<Startup>()

    .ConfigureLogging((hostingContext, logging) =>

    {

        logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));

        logging.AddConsole();

        logging.AddDebug();

    })

    .Build();

這使用了“builder”,因為變量“logging”是一個 IloggingBuilder(而您的代碼仍在使用 ILoggerFactory)


更新:我剛剛嘗試的另一種方法是留在 Startup.cs 中,但將日志內容從“配置”方法移動到“配置服務”,如下所示:


public void ConfigureServices(IServiceCollection services)

{

    services.AddLogging(loggingBuilder =>

    {

        loggingBuilder.AddConfiguration(Configuration.GetSection("Logging"));

        loggingBuilder.AddConsole();

        loggingBuilder.AddDebug();

    });

}

也許可以減少 Program.cs 的污染...


查看完整回答
反對 回復 2022-06-18
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

文檔的使用建議AddConsole(this ILoggingBuilder builder)是正確的,但要使其正常工作,您需要添加對 NuGet 包的引用Microsoft.Extensions.Logging.Console。



查看完整回答
反對 回復 2022-06-18
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

當我將日志代碼從 .Net Core 2.1 更新到 3.0 時,我收到了同樣的警告。推薦的升級方法記錄在 MSDN 上。


就我而言,我試圖為控制臺獲取 LoggerFactory 的實例,這在 .Net Core 3.0 中非常簡單:


using (var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()))

{

    // use loggerFactory

}


查看完整回答
反對 回復 2022-06-18
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

別擔心 - 這是有史以來最愚蠢的事情!

筆記

以下代碼示例使用在 2.2 版中已過時的 ConsoleLoggerProvider 構造函數。3.0 版將提供對過時日志 API 的適當替換。同時,忽略和抑制警告是安全的。

如果您認為您忘記了Obsolete的含義 - 您沒有!不要擔心它,暫時忽略它 - 或抑制警告(對不起,我沒有手頭的代碼)。

(希望他們能更好地解釋為什么要這樣做——這就是我所說的愚蠢。)


查看完整回答
反對 回復 2022-06-18
  • 4 回答
  • 0 關注
  • 208 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號