4 回答

TA貢獻1765條經(jīng)驗 獲得超5個贊
我今天有同樣的問題。
從 Startup.cs 中刪除您的日志記錄配置,然后轉(zhuǎn)到您的 Program.cs 文件并添加如下內(nèi)容:
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”,因為變量“l(fā)ogging”是一個 IloggingBuilder(而您的代碼仍在使用 ILoggerFactory)
更新:我剛剛嘗試的另一種方法是留在 Startup.cs 中,但將日志內(nèi)容從“配置”方法移動到“配置服務(wù)”,如下所示:
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging(loggingBuilder =>
{
loggingBuilder.AddConfiguration(Configuration.GetSection("Logging"));
loggingBuilder.AddConsole();
loggingBuilder.AddDebug();
});
}
也許可以減少 Program.cs 的污染...

TA貢獻1853條經(jīng)驗 獲得超9個贊
文檔的使用建議AddConsole(this ILoggingBuilder builder)
是正確的,但要使其正常工作,您需要添加對 NuGet 包的引用Microsoft.Extensions.Logging.Console
。

TA貢獻1875條經(jīng)驗 獲得超5個贊
當我將日志代碼從 .Net Core 2.1 更新到 3.0 時,我收到了同樣的警告。推薦的升級方法記錄在 MSDN 上。
就我而言,我試圖為控制臺獲取 LoggerFactory 的實例,這在 .Net Core 3.0 中非常簡單:
using (var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()))
{
// use loggerFactory
}

TA貢獻1797條經(jīng)驗 獲得超6個贊
別擔心 - 這是有史以來最愚蠢的事情!
筆記
以下代碼示例使用在 2.2 版中已過時的 ConsoleLoggerProvider 構(gòu)造函數(shù)。3.0 版將提供對過時日志 API 的適當替換。同時,忽略和抑制警告是安全的。
如果您認為您忘記了Obsolete的含義 - 您沒有!不要擔心它,暫時忽略它 - 或抑制警告(對不起,我沒有手頭的代碼)。
(希望他們能更好地解釋為什么要這樣做——這就是我所說的愚蠢。)
- 4 回答
- 0 關(guān)注
- 206 瀏覽
添加回答
舉報