Application Insights - 全局最低严重性级别过滤器?
Application Insights - Global Minimum Severity Level Filter?
有没有一个地方可以设置日志写入的最低严重性?它也应该适用于通过 TelemetryClient.TraceTelemetry
写入的痕迹!有几个问题只涉及 ILogger
...
没有直接的方法。但是您可以使用 telemetry processor 来确定可以记录哪些 SeverityLevel
。
例如,创建一个实现 ITelemetryProcessor 的 class,如下所示:
public class MyCustomFilter : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
// next will point to the next TelemetryProcessor in the chain.
public MyCustomFilter(ITelemetryProcessor next)
{
this.Next = next;
}
public void Process(ITelemetry item)
{
TraceTelemetry traceTelemetry = item as TraceTelemetry;
if (traceTelemetry != null)
{
//use this line of code to determine which SeverityLevel should be logged. In this example, only SeverityLevel is warning and up can be logged
if (traceTelemetry.SeverityLevel < SeverityLevel.Warning) { return; }
}
this.Next.Process(item);
}
}
然后在Startup.cs中注册(对于.net core web app):
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddApplicationInsightsTelemetry();
//register your custom TelemetryProcessor
services.AddApplicationInsightsTelemetryProcessor<MyCustomFilter>();
}
有没有一个地方可以设置日志写入的最低严重性?它也应该适用于通过 TelemetryClient.TraceTelemetry
写入的痕迹!有几个问题只涉及 ILogger
...
没有直接的方法。但是您可以使用 telemetry processor 来确定可以记录哪些 SeverityLevel
。
例如,创建一个实现 ITelemetryProcessor 的 class,如下所示:
public class MyCustomFilter : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
// next will point to the next TelemetryProcessor in the chain.
public MyCustomFilter(ITelemetryProcessor next)
{
this.Next = next;
}
public void Process(ITelemetry item)
{
TraceTelemetry traceTelemetry = item as TraceTelemetry;
if (traceTelemetry != null)
{
//use this line of code to determine which SeverityLevel should be logged. In this example, only SeverityLevel is warning and up can be logged
if (traceTelemetry.SeverityLevel < SeverityLevel.Warning) { return; }
}
this.Next.Process(item);
}
}
然后在Startup.cs中注册(对于.net core web app):
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddApplicationInsightsTelemetry();
//register your custom TelemetryProcessor
services.AddApplicationInsightsTelemetryProcessor<MyCustomFilter>();
}