예제 #1
0
        private LogLevel LogLevelFromEntry(LegacyLogRequest logLevel)
        {
            switch (logLevel.Code)
            {
            case 0:
            case 1:
                return(LogLevel.Information);

            case 3:
                return(LogLevel.Error);
            }
            return(LogLevel.Information);
        }
예제 #2
0
        public async Task Log(string userId, LegacyLogRequest entry)
        {
            var telemetry = new TraceTelemetry(entry.Message, FromEntry(entry));
            var id        = Guid.NewGuid().ToString();

            telemetry.Properties.Add("digitTraceId", id);
            telemetry.Context.Cloud.RoleName = entry.Author;
            telemetry.Context.User.Id        = userId;
            _telemetryClient.TrackTrace(telemetry);
            var e = new LogEntry()
            {
                UserId           = userId,
                AdditionalData   = null,
                Author           = entry.Author,
                DigitTraceAction = DigitTraceAction.Default,
                FocusItemId      = null,
                Id        = id,
                LogLevel  = LogLevelFromEntry(entry),
                Message   = entry.Message,
                Timestamp = DateTimeOffset.Now
            };
            await Task.WhenAll(_subscribers.Select(s => s.Add(e)));
        }
예제 #3
0
 public async void PostLog(string id, [FromBody] LegacyLogRequest entry)
 {
     await digitLogger.Log(User.GetId(), entry);
 }