private static bool ShouldUseListener(ILogListener listener, BeginRequestArgs args)
        {
            LogListenerParser parser = listener.Parser;

            if (parser == null)
            {
                return(true);
            }

            return(parser.ShouldLog(args, listener));
        }
Example #2
0
        public virtual bool ShouldLog(BeginRequestArgs args, ILogListener logListener)
        {
            if (args.Request == null)
            {
                return(true);
            }

            string localPath = args.Request.Url.LocalPath.ToLowerInvariant();

            if (string.IsNullOrEmpty(localPath) == false)
            {
                if (UrlsToIgnore?.Any() == true)
                {
                    if (UrlsToIgnore.Any(p => localPath.Contains(p.ToLowerInvariant())))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
        public static void Notify(HttpRequest httpRequest, Logger logger)
        {
            foreach (LogListenerDecorator decorator in KissLogConfiguration.Listeners.Get())
            {
                ILogListener listener = decorator.Listener;

                BeginRequestArgs args = new BeginRequestArgs
                {
                    IsCreatedByHttpRequest = logger.IsCreatedByHttpRequest(),
                    Request = httpRequest
                };

                if (ShouldUseListener(listener, args) == false)
                {
                    // make the listener skip all the events for the current request
                    decorator.SkipRequestIds.Add(args.Request._KissLogRequestId);

                    continue;
                }

                listener.OnBeginRequest(httpRequest, logger);
            }
        }