public void should_clean_message(string message)
        {
            var cleansedMessage = CleanseLogMessage.Cleanse(message);

            cleansedMessage.Should().NotContain("mySecret");
            cleansedMessage.Should().NotContain("01233210");
        }
Beispiel #2
0
        public static SentryEvent CleanseEvent(SentryEvent sentryEvent)
        {
            try
            {
                sentryEvent.Message.Message = CleanseLogMessage.Cleanse(sentryEvent.Message.Message);

                if (sentryEvent.Fingerprint != null)
                {
                    var fingerprint = sentryEvent.Fingerprint.Select(x => CleanseLogMessage.Cleanse(x)).ToList();
                    sentryEvent.SetFingerprint(fingerprint);
                }

                if (sentryEvent.Extra != null)
                {
                    var extras = sentryEvent.Extra.ToDictionary(x => x.Key, y => (object)CleanseLogMessage.Cleanse((string)y.Value));
                    sentryEvent.SetExtras(extras);
                }

                foreach (var exception in sentryEvent.SentryExceptions)
                {
                    exception.Value = CleanseLogMessage.Cleanse(exception.Value);
                    foreach (var frame in exception.Stacktrace.Frames)
                    {
                        frame.FileName = ShortenPath(frame.FileName);
                    }
                }
            }
            catch (Exception)
            {
            }

            return(sentryEvent);
        }
Beispiel #3
0
        public void should_cleanGoodRead_message(string message)
        {
            var cleansedMessage = CleanseLogMessage.Cleanse(message);

            cleansedMessage.Should().NotContain("mytokensecret");
            cleansedMessage.Should().NotContain("mytoken");
        }
Beispiel #4
0
        public void CleansePacket(RadarrSentryPacket packet)
        {
            packet.Message = CleanseLogMessage.Cleanse(packet.Message);

            if (packet.Fingerprint != null)
            {
                for (var i = 0; i < packet.Fingerprint.Length; i++)
                {
                    packet.Fingerprint[i] = CleanseLogMessage.Cleanse(packet.Fingerprint[i]);
                }
            }

            if (packet.Extra != null)
            {
                var target = JObject.FromObject(packet.Extra);
                new CleansingJsonVisitor().Visit(target);
                packet.Extra = target;
            }

            if (packet.Breadcrumbs != null)
            {
                for (var i = 0; i < packet.Breadcrumbs.Count; i++)
                {
                    packet.Breadcrumbs[i] = CleanseBreadcrumb(packet.Breadcrumbs[i]);
                }
            }
        }
Beispiel #5
0
        protected override void Write(LogEventInfo logEvent)
        {
            try
            {
                var log = new Log();
                log.Time    = logEvent.TimeStamp;
                log.Message = CleanseLogMessage.Cleanse(logEvent.FormattedMessage);

                log.Logger = logEvent.LoggerName;

                if (log.Logger.StartsWith("NzbDrone."))
                {
                    log.Logger = log.Logger.Remove(0, 9);
                }

                if (logEvent.Exception != null)
                {
                    if (string.IsNullOrWhiteSpace(log.Message))
                    {
                        log.Message = logEvent.Exception.Message;
                    }
                    else
                    {
                        log.Message += ": " + logEvent.Exception.Message;
                    }

                    log.Exception     = logEvent.Exception.ToString();
                    log.ExceptionType = logEvent.Exception.GetType().ToString();
                }

                log.Level = logEvent.Level.Name;

                var connectionString = _connectionStringFactory.LogDbConnectionString;

                //TODO: Probably need more robust way to differentiate what's being used
                if (connectionString.Contains(".db"))
                {
                    WriteSqliteLog(log, connectionString);
                }
                else
                {
                    WritePostgresLog(log, connectionString);
                }
            }
            catch (SQLiteException ex)
            {
                InternalLogger.Error("Unable to save log event to database: {0}", ex);
                throw;
            }
        }
Beispiel #6
0
        public static Breadcrumb CleanseBreadcrumb(Breadcrumb b)
        {
            try
            {
                var message = CleanseLogMessage.Cleanse(b.Message);
                var data    = b.Data?.ToDictionary(x => x.Key, y => CleanseLogMessage.Cleanse(y.Value));
                return(new Breadcrumb(message, b.Type, data, b.Category, b.Level));
            }
            catch (Exception)
            {
            }

            return(b);
        }
Beispiel #7
0
        private static Breadcrumb CleanseBreadcrumb(Breadcrumb b)
        {
            try
            {
                var message = CleanseLogMessage.Cleanse(b.Message);
                var data    = b.Data?.ToDictionary(x => x.Key, y => CleanseLogMessage.Cleanse(y.Value));
                return(new Breadcrumb(b.Category)
                {
                    Message = message, Type = b.Type, Data = data, Level = b.Level
                });
            }
            catch (Exception)
            {
            }

            return(b);
        }
Beispiel #8
0
        protected override void Write(LogEventInfo logEvent)
        {
            var log = new Log();

            log.Time    = logEvent.TimeStamp;
            log.Message = CleanseLogMessage.Cleanse(logEvent.FormattedMessage);
            log.Method  = Layout.Render(logEvent);

            log.Logger = logEvent.LoggerName;

            if (log.Logger.StartsWith("NzbDrone."))
            {
                log.Logger = log.Logger.Remove(0, 9);
            }

            if (logEvent.Exception != null)
            {
                if (String.IsNullOrWhiteSpace(log.Message))
                {
                    log.Message = logEvent.Exception.Message;
                }
                else
                {
                    log.Message += ": " + logEvent.Exception.Message;
                }


                log.Exception     = logEvent.Exception.ToString();
                log.ExceptionType = logEvent.Exception.GetType().ToString();
            }


            log.Level = logEvent.Level.Name;

            try
            {
                _repository.Insert(log);
            }
            catch (SQLiteException ex)
            {
                InternalLogger.Error("Unable to save log event to database: {0}", ex);
                throw;
            }
        }
        public void should_not_clean_ipaddress(string message)
        {
            var cleansedMessage = CleanseLogMessage.Cleanse(message);

            cleansedMessage.Should().Be(message);
        }
        public void should_clean_ipaddress(string message)
        {
            var cleansedMessage = CleanseLogMessage.Cleanse(message);

            cleansedMessage.Should().NotContain(".2.3.");
        }
Beispiel #11
0
        protected override void Write(LogEventInfo logEvent)
        {
            try
            {
                var log = new Log();
                log.Time    = logEvent.TimeStamp;
                log.Message = CleanseLogMessage.Cleanse(logEvent.FormattedMessage);

                log.Logger = logEvent.LoggerName;

                if (log.Logger.StartsWith("NzbDrone."))
                {
                    log.Logger = log.Logger.Remove(0, 9);
                }

                if (logEvent.Exception != null)
                {
                    if (string.IsNullOrWhiteSpace(log.Message))
                    {
                        log.Message = logEvent.Exception.Message;
                    }
                    else
                    {
                        log.Message += ": " + logEvent.Exception.Message;
                    }

                    log.Exception     = logEvent.Exception.ToString();
                    log.ExceptionType = logEvent.Exception.GetType().ToString();
                }

                log.Level = logEvent.Level.Name;

                var sqlCommand = new SQLiteCommand(INSERT_COMMAND, _connection);

                sqlCommand.Parameters.Add(new SQLiteParameter("Message", DbType.String)
                {
                    Value = log.Message
                });
                sqlCommand.Parameters.Add(new SQLiteParameter("Time", DbType.DateTime)
                {
                    Value = log.Time.ToUniversalTime()
                });
                sqlCommand.Parameters.Add(new SQLiteParameter("Logger", DbType.String)
                {
                    Value = log.Logger
                });
                sqlCommand.Parameters.Add(new SQLiteParameter("Exception", DbType.String)
                {
                    Value = log.Exception
                });
                sqlCommand.Parameters.Add(new SQLiteParameter("ExceptionType", DbType.String)
                {
                    Value = log.ExceptionType
                });
                sqlCommand.Parameters.Add(new SQLiteParameter("Level", DbType.String)
                {
                    Value = log.Level
                });

                sqlCommand.ExecuteNonQuery();
            }
            catch (SQLiteException ex)
            {
                InternalLogger.Error("Unable to save log event to database: {0}", ex);
                throw;
            }
        }
        public void should_not_clean_usetoken(string message)
        {
            var cleansedMessage = CleanseLogMessage.Cleanse(message);

            cleansedMessage.Should().Be(message);
        }