繁体   English   中英

为什么 asp.net 核心记录一切?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM