private static bool ShouldUseListener(ILogListener listener, BeginRequestArgs args) { LogListenerParser parser = listener.Parser; if (parser == null) { return(true); } return(parser.ShouldLog(args, listener)); }
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); } }