Exemplo n.º 1
0
        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()));
        }
Exemplo n.º 2
0
        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;
            }
        }