Example #1
0
        public async Task <ExtendedEventsPosition> GetLastPosition(
            XEventsExportSettings.LogSourceSettings logSettings,
            string directoryName)
        {
            ExtendedEventsPosition position = null;

            if (LogPositions.TryGetValue(logSettings, out ConcurrentDictionary <string, ExtendedEventsPosition> settingPositions))
            {
                settingPositions.TryGetValue(directoryName, out position);
            }

            return(position);
        }
Example #2
0
        private void SaveLogs(
            XEventsExportSettings.LogSourceSettings logSettings,
            ExtendedEventsPosition position,
            IList <XEventData> rowsData,
            FileInfo logFileInfo)
        {
            var newBufferItem = new LogBufferItem();

            newBufferItem.LogPosition = position;
            foreach (var rowData in rowsData)
            {
                newBufferItem.LogRows.TryAdd(new EventKey()
                {
                    Id   = Guid.NewGuid(),
                    File = logFileInfo
                }, rowData);
            }

            LogBuffer.TryAdd(new LogBufferItemKey(logSettings, DateTime.UtcNow, logFileInfo.FullName),
                             newBufferItem);

            LogPositions.AddOrUpdate(logSettings,
                                     (settings) =>
            {
                var newPositions = new ConcurrentDictionary <string, ExtendedEventsPosition>();
                newPositions.AddOrUpdate(logFileInfo.Name,
                                         (fileName) => position,
                                         (fileName, oldPosition) => position);
                return(newPositions);
            },
                                     (settings, logBufferItem) =>
            {
                logBufferItem.AddOrUpdate(logFileInfo.Name,
                                          (fileName) => position,
                                          (fileName, oldPosition) => position);
                return(logBufferItem);
            });
        }