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 _); } }
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); }
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()); }
public void AddReplayLog(Activity activity, LogMessageInformation logMessage) { }