public void LogFile(string sourceFilePath, string fileName) { if (!File.Exists(sourceFilePath)) { _logger.Warn($"KissLog: Could not upload file '{sourceFilePath}' because it does not exist"); return; } FileInfo fi = new FileInfo(sourceFilePath); if (fi.Length > Constants.LoggerFileMaximumSizeBytes) { _logger.Warn($"KissLog: Could not upload file '{sourceFilePath}', because size exceeds {Constants.LoggerFileMaximumSizeBytes} bytes"); return; } TemporaryFile tempFile = null; try { tempFile = new TemporaryFile(); File.Copy(sourceFilePath, tempFile.FileName, true); _tempFiles.Add(tempFile); LoggerFile file = new LoggerFile(tempFile.FileName, fileName); _files.Add(file); } catch (Exception ex) { tempFile?.Dispose(); _logger.Error(ex); } }
public void LogAsFile(byte[] content, string fileName) { if (content == null || !content.Any()) { return; } if (content.Length > Constants.LoggerFileMaximumSizeBytes) { _logger.Warn($"KissLog: Could not upload file because size exceeds {Constants.LoggerFileMaximumSizeBytes} bytes"); return; } TemporaryFile tempFile = null; try { tempFile = new TemporaryFile(); File.WriteAllBytes(tempFile.FileName, content); _tempFiles.Add(tempFile); LoggerFile file = new LoggerFile(tempFile.FileName, fileName); _files.Add(file); } catch (Exception ex) { tempFile?.Dispose(); _logger.Error(ex); } }
public void LogAsFile(string content, string fileName) { if (string.IsNullOrEmpty(content)) { return; } if (content.Length > InternalHelpers.LoggerFileMaximumSizeBytes) { _logger.Warn($"KissLog: Could not upload file because size exceeds {InternalHelpers.LoggerFileMaximumSizeBytes} bytes"); return; } TemporaryFile tempFile = null; try { tempFile = new TemporaryFile(); File.WriteAllText(tempFile.FileName, content); _tempFiles.Add(tempFile); LoggerFile file = new LoggerFile(tempFile.FileName, fileName); _files.Add(file); } catch (Exception ex) { tempFile?.Dispose(); _logger.Error(ex); } }
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); }