コード例 #1
0
        public static void AddReplayLog(this Activity activity, LogMessageInformation logEvent, uint maxReplayedEventsPerActivity)
        {
            ConcurrentQueue <LogMessageInformation>?queue = activity.GetReplayableLogsInternal();

            if (queue == null)
            {
                queue = new ConcurrentQueue <LogMessageInformation>();
                activity.SetCustomProperty(ReplayableLogKey, queue);
            }

            queue.Enqueue(logEvent);

            if (queue.Count > maxReplayedEventsPerActivity)
            {
                queue.TryDequeue(out _);
            }
        }
コード例 #2
0
        public void LogMessage_ReplayedMessageSaved()
        {
            string suffix  = nameof(LogMessage_ReplayedMessageSaved);
            int    eventId = 7;
            Mock <ILogEventSender> eventSourceMock = CreateEventSourceMock(isReplayable: true);

            ReplayableActivity activity = CreateActivity(suffix);

            activity.Start();
            LogMessage(eventSourceMock, eventId);
            activity.Stop();

            eventSourceMock.Verify(m_logExpression, Times.Once);
            LogMessageInformation info = activity.GetLogEvents().Single();

            Assert.AreEqual(GetLogCategory(suffix), info.Category);
            Assert.AreEqual(GetLogMessage(suffix), info.Message);
            Assert.AreEqual(CreateEventId(eventId, suffix), info.EventId);
        }
コード例 #3
0
        public void LogMessage_ReplayedMessageAndExceptionSaved()
        {
            string  suffix  = nameof(LogMessage_ReplayedMessageAndExceptionSaved);
            EventId eventId = CreateEventId(7, suffix);
            string  message = GetLogMessage(suffix);
            Mock <ILogEventSender> eventSourceMock = CreateEventSourceMock();

            Activity activity = CreateActivity(suffix);

            activity.Start();
            (ILogger logger, _) = LogMessage(eventSourceMock, logEventReplayer: CreateLogReplayer(10), eventId.Id);
            logger.LogDebug(eventId, s_expectedPropagatedException, message);
            activity.Stop();

            eventSourceMock.Verify(s_logExpression, Times.Exactly(2));
            LogMessageInformation info = activity.GetReplayableLogs().Single();

            Assert.AreEqual(GetLogCategory(suffix), info.Category);
            Assert.AreEqual(eventId, info.EventId);
            StringAssert.Contains(info.Message, message);
            StringAssert.Contains(info.Message, s_expectedPropagatedException.ToString());
        }
コード例 #4
0
 public void AddReplayLog(Activity activity, LogMessageInformation logMessage)
 {
 }