C# 如何从App.Mertics禁用所有跟踪日志
我正在尝试向我的web应用程序(.net core 3.1)添加度量。一切正常,但我面临一个事实,即度量向我的记录器中发送一些跟踪信息: App Metrics经常向日志发送垃圾邮件,以至于我每2-3小时就会收到约100兆字节的无用日志。不幸的是,我没有找到任何关于内部日志的信息 我唯一得到的是:我禁用了报告功能。它减少了日志的数量,但仍然有很多日志(对我来说,所有日志都不包含任何有用的信息) program.cs:C# 如何从App.Mertics禁用所有跟踪日志,c#,.net-core,metrics,C#,.net Core,Metrics,我正在尝试向我的web应用程序(.net core 3.1)添加度量。一切正常,但我面临一个事实,即度量向我的记录器中发送一些跟踪信息: App Metrics经常向日志发送垃圾邮件,以至于我每2-3小时就会收到约100兆字节的无用日志。不幸的是,我没有找到任何关于内部日志的信息 我唯一得到的是:我禁用了报告功能。它减少了日志的数量,但仍然有很多日志(对我来说,所有日志都不包含任何有用的信息) program.cs: public static void Main(string[] a
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;
}
publicstaticvoidmain(字符串[]args)
{
Metrics=AppMetrics.CreateDefaultBuilder().Configuration
.Configure(选项=>options.ReportingEnabled=false)
.OutputMetrics.AsPrometheusPlainText()
.Build();
CreateHostBuilder(args.Build().Run();
}
公共静态IHostBuilder CreateHostBuilder(字符串[]args)
{
var builder=Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>webBuilder.UseStartup());
builder=builder.ConfigureMetrics(度量)
.ConfigureAppMetricHostingConfiguration(选项=>options.MetricsTextEndpoint=“/metrics”)
.UseMetrics(选项=>
{
options.EndpointOptions=endpointsOptions=>
{
endpointsOptions.MetricsTextEndpointOutputFormatter=度量值.OutputMetricsFormatters
.OfType().First();
};
})
.UseMetricsEndpoints(选项=>options.MetricsEndpointEnabled=false);
返回生成器;
}
我是否可以禁用App Metrics中的所有日志(或者至少禁用所有跟踪信息)?无法禁用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>
/// ....
您可以试试
App.Metrics.Logging.LogProvider.IsDisabled = true;
它在Serilog的3.0.0版中适用于我:
"Serilog": {
"Using": [],
"MinimumLevel": {
"Default": "Verbose",
"Override": {
"App.Metrics": "Warning"
}
} }