static KissLogConfiguration() { InternalHelpers.WrapInTryCatch(() => { ModuleInitializer.Init(); }); }
public void Log(LogLevel logLevel, string message, string memberName = null, int lineNumber = 0, string memberType = null) { if (string.IsNullOrWhiteSpace(message)) { return; } LogMessage logMessage = new LogMessage(new LogMessage.CreateOptions { CategoryName = CategoryName, LogLevel = logLevel, Message = message, MemberType = memberType, MemberName = memberName, LineNumber = lineNumber }); DataContainer.Add(logMessage); Guid?httpRequestId = DataContainer.HttpProperties == null ? (Guid?)null : DataContainer.HttpProperties.Request.Id; InternalHelpers.WrapInTryCatch(() => { NotifyOnMessage.Notify(logMessage, httpRequestId); }); }
public static void NotifyListeners(IEnumerable <Logger> loggers) { if (loggers == null || !loggers.Any()) { return; } InternalHelpers.WrapInTryCatch(() => { NotifyFlush.Notify(loggers.ToArray()); }); }
public static void NotifyListeners(Logger logger) { if (logger == null) { return; } InternalHelpers.WrapInTryCatch(() => { NotifyFlush.Notify(new[] { logger }); }); }
public static FlushLogArgs Create(Logger[] loggers) { if (loggers == null || !loggers.Any()) { throw new ArgumentNullException(); } Logger defaultLogger = loggers.FirstOrDefault(p => p.CategoryName == Constants.DefaultLoggerCategoryName) ?? loggers.First(); var options = new FlushLogArgs.CreateOptions { MessagesGroups = GetLogMessages(loggers), Exceptions = GetExceptions(loggers), Files = GetFiles(loggers), CustomProperties = GetCustomProperties(loggers), IsCreatedByHttpRequest = defaultLogger.DataContainer.LoggerProperties.IsManagedByHttpRequest }; HttpProperties httpProperties = defaultLogger.DataContainer.HttpProperties; if (httpProperties == null) { httpProperties = new HttpProperties(new HttpRequest(new HttpRequest.CreateOptions { HttpMethod = "GET", Url = UrlParser.GenerateUri(null), MachineName = InternalHelpers.GetMachineName(), StartDateTime = defaultLogger.DataContainer.DateTimeCreated })); } if (httpProperties.Response == null) { int statusCode = options.Exceptions.Any() ? (int)HttpStatusCode.InternalServerError : (int)HttpStatusCode.OK; httpProperties.SetResponse(new HttpResponse(new HttpResponse.CreateOptions { StatusCode = statusCode })); } int?explicitStatusCode = GetExplicitStatusCode(loggers); if (explicitStatusCode.HasValue) { httpProperties.Response.SetStatusCode(explicitStatusCode.Value); } options.HttpProperties = httpProperties; return(new FlushLogArgs(options)); }
private static FlushLogArgs CreateFlushArgsForListener(Logger defaultLogger, ILogListener listener, FlushLogArgs defaultArgs, string defaultArgsJson, List <LoggerFile> defaultFiles) { FlushLogArgs args = JsonConvert.DeserializeObject <FlushLogArgs>(defaultArgsJson); string inputStream = null; if (!string.IsNullOrEmpty(defaultArgs.WebRequestProperties.Request.InputStream)) { if (KissLogConfiguration.Options.ApplyShouldLogRequestInputStream(defaultLogger, listener, defaultArgs)) { inputStream = defaultArgs.WebRequestProperties.Request.InputStream; } } args.WebRequestProperties.Request.Headers = defaultArgs.WebRequestProperties.Request.Headers.Where(p => KissLogConfiguration.Options.ApplyShouldLogRequestHeader(listener, defaultArgs, p.Key)).ToList(); args.WebRequestProperties.Request.Cookies = defaultArgs.WebRequestProperties.Request.Cookies.Where(p => KissLogConfiguration.Options.ApplyShouldLogRequestCookie(listener, defaultArgs, p.Key)).ToList(); args.WebRequestProperties.Request.QueryString = defaultArgs.WebRequestProperties.Request.QueryString.Where(p => KissLogConfiguration.Options.ApplyShouldLogRequestQueryString(listener, defaultArgs, p.Key)).ToList(); args.WebRequestProperties.Request.FormData = defaultArgs.WebRequestProperties.Request.FormData.Where(p => KissLogConfiguration.Options.ApplyShouldLogRequestFormData(listener, defaultArgs, p.Key)).ToList(); args.WebRequestProperties.Request.ServerVariables = defaultArgs.WebRequestProperties.Request.ServerVariables.Where(p => KissLogConfiguration.Options.ApplyShouldLogRequestServerVariable(listener, defaultArgs, p.Key)).ToList(); args.WebRequestProperties.Request.Claims = defaultArgs.WebRequestProperties.Request.Claims.Where(p => KissLogConfiguration.Options.ApplyShouldLogRequestClaim(listener, defaultArgs, p.Key)).ToList(); args.WebRequestProperties.Request.InputStream = inputStream; args.WebRequestProperties.Response.Headers = defaultArgs.WebRequestProperties.Response.Headers.Where(p => KissLogConfiguration.Options.ApplyShouldLogResponseHeader(listener, defaultArgs, p.Key)).ToList(); List <LogMessagesGroup> messages = new List <LogMessagesGroup>(); foreach (var group in defaultArgs.MessagesGroups) { messages.Add(new LogMessagesGroup { CategoryName = group.CategoryName, Messages = group.Messages.Where(p => listener.Parser.ShouldLog(p, listener)).ToList() }); } args.MessagesGroups = messages; List <LoggerFile> files = defaultFiles.ToList(); LoggerFile responseFile = GetResponseFile(files); if (responseFile != null && !InternalHelpers.ShouldLogResponseBody(defaultLogger, listener, defaultArgs)) { files.Remove(responseFile); } args.Files = files; return(args); }
public Logger(string categoryName = null, string url = null) { Id = Guid.NewGuid(); CategoryName = string.IsNullOrWhiteSpace(categoryName) ? Constants.DefaultLoggerCategoryName : categoryName; DataContainer = new LoggerDataContainer(this); HttpProperties httpProperties = string.IsNullOrWhiteSpace(url) ? null : HttpPropertiesFactory.Create(url); if (httpProperties != null) { DataContainer.SetHttpProperties(httpProperties); InternalHelpers.WrapInTryCatch(() => { NotifyBeginRequest.Notify(httpProperties.Request); }); } }