如何禁用来自 App.Mertics 的所有跟踪日志
How to disable all trace logs from App.Mertics
我正在尝试向我的 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 中的所有日志(或至少禁用所有跟踪信息)?
无法禁用来自 App.Mertics 的 internal/trace 日志。我只能在 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;
它适用于我的 3.0.0 版本
对于 Serilog:
"Serilog": {
"Using": [],
"MinimumLevel": {
"Default": "Verbose",
"Override": {
"App.Metrics": "Warning"
}
} }
我正在尝试向我的 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 中的所有日志(或至少禁用所有跟踪信息)?
无法禁用来自 App.Mertics 的 internal/trace 日志。我只能在 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;
它适用于我的 3.0.0 版本
对于 Serilog:
"Serilog": {
"Using": [],
"MinimumLevel": {
"Default": "Verbose",
"Override": {
"App.Metrics": "Warning"
}
} }