private static string BuildContext(LykkeLogEvent logEvent) { var context = new LykkeLogContext { Duration = logEvent.Duration, Thread = logEvent.Thread.ManagedThreadId.ToString().PadLeft(4, '0'), Trigger = logEvent.Trigger }; return(JsonConvert.SerializeObject(context, Formatting.None, new ActorRefConverter())); }
public static async Task LogEventAsync(this ILog log, LykkeLogEvent logEvent) { var component = logEvent.LogSource; var context = BuildContext(logEvent); var dateTime = logEvent.Timestamp; var info = logEvent.Message; var process = logEvent.Process; switch (logEvent) { case LykkeInfo _: await log.WriteInfoAsync ( component, process, context, info, dateTime ); break; case LykkeWarning warning: await log.WriteWarningAsync ( component, process, context, info, warning.Cause, dateTime ); break; case LykkeError error: await log.WriteErrorAsync ( component, process, $"{info}:{context}", error.Cause, dateTime ); break; case LykkeFatalError fatalError: await log.WriteFatalErrorAsync ( component, process, $"{info}:{context}", fatalError.Cause, dateTime ); break; case LykkeMonitoring _: break; } }