Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
        }