in src/Microsoft.Azure.WebJobs.Logging.ApplicationInsights/Processors/FilteringTelemetryProcessor.cs [37:67]
private bool IsEnabled(ITelemetry item)
{
bool enabled = true;
if (item is ISupportProperties telemetry && _filterOptions != null)
{
if (!telemetry.Properties.TryGetValue(LogConstants.CategoryNameKey, out string categoryName))
{
// If no category is specified, it will be filtered by the default filter
categoryName = string.Empty;
}
// Extract the log level and apply the filter
if (telemetry.Properties.TryGetValue(LogConstants.LogLevelKey, out string logLevelString) &&
LogLevelExtension.TryParseOptimized(logLevelString, out LogLevel logLevel))
{
LoggerFilterRule filterRule = _ruleMap.GetOrAdd(categoryName, c => SelectRule(c));
if (filterRule.LogLevel != null && logLevel < filterRule.LogLevel)
{
enabled = false;
}
else if (filterRule.Filter != null)
{
enabled = filterRule.Filter(ProviderType.FullName, categoryName, logLevel);
}
}
}
return enabled;
}