/// <summary> /// Changes the configuration provider for the trace filter /// </summary> /// <param name="configuration">The new configuration provider to use</param> public void ConfigureWith(IConfiguration configuration) { Dispose(); if (configuration == null) { return; } _configRegistration = configuration.Register( "/owinFramework/middleware/traceFilter", cfg => { if (cfg.MiddlewareClasses != null && cfg.MiddlewareClasses.Count > 0) { var name = _traceable.GetType().FullName; if (!cfg.MiddlewareClasses.Any(c => name.EndsWith(c, StringComparison.OrdinalIgnoreCase))) { _traceFilterLevel = TraceFilterLevel.None; return; } } TraceFilterLevel traceFilterLevel; if (Enum.TryParse(cfg.Level, true, out traceFilterLevel)) { _traceFilterLevel = traceFilterLevel; } }, new Configuration()); }
/// <summary> /// Constructs a new trace filter. This filter can be used in place of /// calling the trace method directly to provide the ability to filter /// trace messages and configure which trace messages are output to the /// reace log /// </summary> /// <param name="configuration">The Owin Framework configuration mechanism</param> /// <param name="traceable">The middleware that implements ITraceable. It will /// be possible to filter trace messages by the class name of this middleware</param> public TraceFilter( IConfiguration configuration, ITraceable traceable) { _traceable = traceable; _traceFilterLevel = TraceFilterLevel.Information; ConfigureWith(configuration); }