[英]Why asp.net core logging everything?
我已经创建了我的第一个 asp.net 核心 3.0 应用程序。 以及带有 serilog 文件扩展名的 setup.cs 文件,如下所示:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
loggerFactory.AddFile("logs/ts-{Date}.txt");
....
而 appsettings.json 是:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
但这会在应用程序运行时记录很多信息。 但我只想在 controller 操作或其他任何地方保存我的日志调用:
public class WeatherForecastController : ControllerBase
{
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
_logger.LogInformation("oops");
....
}
}
.NET Core 3 项目的默认模板也有一个appsettings.Development.json
文件,它覆盖了基础appsettings.json
文件中的设置。 它看起来像这样:
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
请注意,日志级别设置为Debug
,这就是您的日志包含如此多条目的原因。
从文档:
当您使用
CreateDefaultBuilder
初始化新的主机构建器时,会自动调用AddJsonFile
两次。 调用该方法以从以下位置加载配置:
- appsettings.json - 首先读取此文件。 该文件的环境版本可以覆盖 appsettings.json 文件提供的值。
- appsettings.{Environment}.json – 根据 IHostingEnvironment.EnvironmentName 加载文件的环境版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.