Beispiel #1
0
        private void Log(LambdaLogLevel level, Exception exception, string format, params object[] args)
        {
            string message = RollbarClient.FormatMessage(format, args);

            Log(level, $"{message}", exception?.ToString());
            if (level >= LambdaLogLevel.WARNING)
            {
                if (_rollbarEnabled)
                {
                    try {
                        Log(LambdaLogLevel.INFO, "rollbar sending data", extra: null);
                        var result = _rollbarClient.SendAsync(level.ToString(), exception, format, args).Result;
                        if (!result.IsSuccess)
                        {
                            Log(LambdaLogLevel.ERROR, $"Rollbar payload request failed. {result.Message}. UUID: {result.UUID}", extra: null);
                        }
                    } catch (Exception e) {
                        Log(LambdaLogLevel.ERROR, "rollbar SendAsync exception", e.ToString());
                    }
                }
                else if (_loggingTopicArn != null)
                {
                    string payload;
                    try {
                        // send exception to error-topic
                        payload = _rollbarClient.CreatePayload(MAX_SNS_SIZE, level.ToString(), exception, format, args);
                    } catch (Exception e) {
                        Log(LambdaLogLevel.ERROR, "rollbar CreatePayload exception", e.ToString());
                        return;
                    }
                    try {
                        // send exception to error-topic
                        _snsClient.PublishAsync(new PublishRequest {
                            TopicArn = _loggingTopicArn,
                            Message  = payload
                        }).Wait();
                    } catch (Exception e) {
                        Log(LambdaLogLevel.ERROR, "SNS publish exception", e.ToString());
                        Log(LambdaLogLevel.INFO, "logging payload", payload);
                    }
                }
            }
        }