Ejemplo n.º 1
0
        public static void LogCommonData(string methodName, string data, ILambdaContext context)
        {
            // log method
            LambdaLogger.Log($">>[{methodName}]>>");

            // log data
            if (data != null)
            {
                LambdaLogger.Log($"<<[{data}]<<");
            }

            // log context data
            if (context != null)
            {
                var contextData = new List <string>();
                contextData.Add(context.GetType().FullName);
                contextData.Add(context.AwsRequestId);
                contextData.Add(context.ClientContext.GetType().FullName);
                contextData.Add(context.ClientContext.Client.AppPackageName);
                contextData.Add(context.ClientContext.Client.AppTitle);
                contextData.Add(context.ClientContext.Client.AppVersionCode);
                contextData.Add(context.ClientContext.Client.AppVersionName);
                contextData.Add(context.ClientContext.Client.InstallationId);
                contextData.Add(string.Join(", ", context.ClientContext.Custom.Keys));
                contextData.Add(string.Join(", ", context.ClientContext.Custom.Values));
                contextData.Add(string.Join(", ", context.ClientContext.Environment.Keys));
                contextData.Add(string.Join(", ", context.ClientContext.Environment.Values));
                contextData.Add(context.FunctionName);
                contextData.Add(context.FunctionVersion);
                contextData.Add(context.Identity.IdentityId);
                contextData.Add(context.Identity.IdentityPoolId);
                contextData.Add(context.InvokedFunctionArn);
                contextData.Add(context.Logger.GetType().FullName);
                contextData.Add(context.LogGroupName);
                contextData.Add(context.LogStreamName);
                contextData.Add(context.MemoryLimitInMB.ToString());
                contextData.Add(context.RemainingTime.Ticks.ToString());

                LambdaLogger.Log($"==[{string.Join(";", contextData)}]==");
            }

            // log using ILogger
            var loggerFactory = Common.LoggerFactory;

            if (loggerFactory == null)
            {
                throw new InvalidOperationException("LoggerFactory is null!");
            }

            var nullLogger = loggerFactory.CreateLogger(null);

            nullLogger.LogInformation($"__[nullLogger-{methodName}]__");
            nullLogger.LogTrace($"##[nullLogger-{methodName}]##");

            var testLogger = loggerFactory.CreateLogger("HandlerTest.Logging");

            testLogger.LogInformation($"__[testLogger-{methodName}]__");

            // log using LambdaLogger static
            LambdaLogger.Log($"^^[{methodName}]^^");
        }