Пример #1
0
        private void CreateDiagnosticEvent(string message, LogLevel severity, Exception exception = null)
        {
            var payload = new DiagnosticPayload()
            {
                CorrelationId = ThreadContext.Get().ExecutionId,
                Severity      = severity.ToString(),
                Message       = exception == null ? message : exception.FormatExceptionMessage(message),
                ProcessId     = Process.GetCurrentProcess().Id,
                ThreadId      = Thread.CurrentThread.ManagedThreadId
            };

            _internalBuffer.Enqueue(new Diagnostic(Priority, payload));
        }
        public void NonEmptyExtraDetails()
        {
            var payload = new DiagnosticPayload
            {
                CorrelationId = Guid.NewGuid(),
                Message       = "message",
                ProcessId     = 123,
                Severity      = "Fatal",
                ThreadId      = 432,
                ExtraDetails  = new Dictionary <string, string>()
            };

            var obj = new Diagnostic(EventPriority.High, payload);

            obj.ValidateSchema();

            payload.ExtraDetails.Add("a", "b");
            obj = new Diagnostic(EventPriority.Operational, payload);
            obj.ValidateSchema();
        }
        public void Diagnostic()
        {
            var payload = new DiagnosticPayload
            {
                CorrelationId = Guid.NewGuid(),
                Message       = "free-text",
                ProcessId     = 123,
                ThreadId      = 432,
            };

            foreach (var value in Enum.GetValues(typeof(LogLevel)))
            {
                if ((LogLevel)value == LogLevel.Off)
                {
                    continue;
                }

                payload.Severity = value.ToString();
                var obj = new Diagnostic(EventPriority.High, payload);
                obj.ValidateSchema();
            }
        }