【问题标题】:How to disable all trace logs from App.Mertics如何从 App.Metrics 禁用所有跟踪日志
【发布时间】:2020-08-14 13:34:26
【问题描述】:

我正在尝试将指标添加到我的 Web 应用程序(.net core 3.1)。一切正常,但我面临这样一个事实,即指标垃圾邮件到我的记录器中一些跟踪信息:

App-Metrics 经常将垃圾邮件发送到日志中,以至于我每 2-3 小时就会收到大约 100 兆字节的无用日志。不幸的是,我在https://www.app-metrics.io/web-monitoring/aspnet-core/reporting/ 没有找到有关内部日志的任何信息 我得到的唯一一件事是:我禁用了报告。它减少了日志的数量,但仍然有很多(就我而言,所有这些都不包含任何有用的信息)。

program.cs:

    public static void Main(string[] args)
    {
        Metrics = AppMetrics.CreateDefaultBuilder().Configuration
            .Configure(options => options.ReportingEnabled = false)
            .OutputMetrics.AsPrometheusPlainText()
            .Build();

        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args)
    {
        var builder = Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>());

        builder = builder.ConfigureMetrics(Metrics)
            .ConfigureAppMetricsHostingConfiguration(options => options.MetricsTextEndpoint = "/metrics")
            .UseMetrics(options =>
            {
                options.EndpointOptions = endpointsOptions =>
                {
                    endpointsOptions.MetricsTextEndpointOutputFormatter = Metrics.OutputMetricsFormatters
                        .OfType<MetricsPrometheusTextOutputFormatter>().First();
                };
            })
            .UseMetricsEndpoints(options => options.MetricsEndpointEnabled = false);

        return builder;
    }

我能否以某种方式禁用 App-Metrics 中的所有日志(或至少禁用所有跟踪信息)?

【问题讨论】:

    标签: c# .net-core metrics


    【解决方案1】:

    无法从 App.Mertics 禁用内部/跟踪日志。我只能在 Nlog 配置中禁用跟踪日志:

    <?xml version="1.0" encoding="utf-8" ?>
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      /// ....
      <rules>
        <logger name="App.Metrics.*" minLevel="Info" />
      </rules>
    </nlog>
    

    【讨论】:

      【解决方案2】:

      你可以试试

      App.Metrics.Logging.LogProvider.IsDisabled = true;
      

      它适用于我的版本 3.0.0

      【讨论】:

        【解决方案3】:

        对于 Serilog:

        "Serilog": {
        "Using": [],
        "MinimumLevel": {
          "Default": "Verbose",
          "Override": {
            "App.Metrics": "Warning"
          }
        } }
        

        【讨论】:

          猜你喜欢
          • 2019-09-22
          • 1970-01-01
          • 2017-06-27
          • 1970-01-01
          • 1970-01-01
          • 2023-03-27
          • 2021-07-27
          • 2021-08-16
          • 1970-01-01
          相关资源
          最近更新 更多