Tho*_*her 6 logging .net-core asp.net-core
我们尝试通过配置文件(默认的 appsettings.json)为 ASP.NET Core 应用程序配置日志记录。该文档说这应该是可能的(https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1),但我们无法让它按预期工作。
到目前为止我们已经尝试过:
public static IHostBuilder CreateHostBuilder (string[] args) =>
Host.CreateDefaultBuilder (args)
.ConfigureAppConfiguration ((hostingContext, config) =>
{
config.Sources.Clear ();
var env = hostingContext.HostingEnvironment;
config.AddJsonFile ("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile ($"appsettings.{env.EnvironmentName}.json",
optional: true, reloadOnChange: true);
config.AddEnvironmentVariables ();
})
.ConfigureLogging ((hostingContext, logging) =>
{
logging.ClearProviders ();
logging.AddConfiguration (hostingContext.Configuration.GetSection ("Logging"));
})
.ConfigureWebHostDefaults (webBuilder =>
{
webBuilder.UseStartup<Startup> ();
});
Run Code Online (Sandbox Code Playgroud)
public void ConfigureServices (IServiceCollection services)
{
services.AddLogging (config => config.AddConfiguration (Configuration.GetSection("Logging")));
services.AddControllers ();
}
Run Code Online (Sandbox Code Playgroud)
你误会了。您可以配置日志记录,即每个提供程序的日志级别、过滤消息等,但实际的提供程序必须在代码中分配。换句话说,您可以通过配置配置发送到控制台的消息,但您仍然必须logging.AddConsole()在内部调用ConfigureLogging以添加该提供程序。
您拥有的代码清除了所有默认提供程序并且不添加任何内容,因此根本没有提供程序,因此不会生成任何日志。您实际上无法通过配置添加提供程序,只需配置已添加的提供程序。
| 归档时间: |
|
| 查看次数: |
8146 次 |
| 最近记录: |