お手軽なんで、Microsoft.Extensions.Logging
のコンソール出力を使ってたら、Obsoleteになってたので解決方法のメモ。
元ソースは以下ですが、これが警告になりました。
ILoggerFactory loggerFactory = new LoggerFactory().AddConsole() ILogger<Program> logger = loggerFactory.CreateLogger<Program>();
ConsoleLoggerExtensions.AddConsole Method (Microsoft.Extensions.Logging) | Microsoft Docs をみても 廃止予定とかいてあります。
代わりに、AddConsole(ILoggingBuilder)
を使えとあったのですが、ILoggingBuilderはどこから取ってくるんだろうと思って調べたら、stackoverflowにありました。
2.x 系では、DI使えと。
IServiceCollection serviceCollection = new ServiceCollection(); serviceCollection.AddLogging(builder => builder .AddConsole() .AddFilter(level => level >= LogLevel.Information) ); var loggerFactory = serviceCollection.BuildServiceProvider().GetService<ILoggerFactory>();
3.0 系では、
var loggerFactory = LoggerFactory.Create(builder => { builder.AddFilter("Microsoft", LogLevel.Warning) .AddFilter("System", LogLevel.Warning) .AddFilter("SampleApp.Program", LogLevel.Debug) .AddConsole(); } );
と、LogFactory.Create
メソッドができるとか。stackoverflowの回答では、それぞれ .NET Core ではと書いてあったけど普通に .NET 4.7系とかからも使えるから、Loggerのバージョンの話じゃないですかね。3.0は現時点でPreviewです。