Ejemplo n.º 1
0
        /// <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());
        }
Ejemplo n.º 2
0
 /// <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);
 }