Open Dreamescaper opened 2 years ago
@Dreamescaper Thanks for submitting feature request. Please advise on how you came up with the JSON format of the log output. Did you use Serilog structured logging as reference?
@ashishdhingra No, mostly on MS json console logger.
https://docs.microsoft.com/ru-ru/dotnet/core/extensions/console-log-formatter#json
@Dreamescaper can you setup your logging using MS Json logging and direct it to the console (std out) ?
that way you can use whatever MS supports including structured logging and not have any dependency on AWS .NET assemblies
@petarrepac MS console logging uses a background thread for logging, and it's not a great idea for lambdas, according to this info https://github.com/aws/aws-logging-dotnet#aws-lambda
Needs review with the team.
@Dreamescaper Good afternoon. Structured logging support was added as part of PR https://github.com/aws/aws-lambda-dotnet/pull/1803. Please refer to https://github.com/aws/aws-lambda-dotnet/issues/1747 for details. Kindly confirm if it covers your scenario.
Thanks, Ashish
@ashishdhingra
Not sure. Per my understanding, in order to use it with AspNetCore, it would have to implement Microsoft.Extensions.Logging.ILogger, right?
Describe the feature
I should be able to use structural logging with lambda logger.
Use Case
I'd like to use structural logging either with CloudWatch Insights, or with third party system (e.g. DataDog).
Proposed Solution
Add Json lambda logger to DI via smth like this:
This logger should support logging "state" object:
logger.LogInformation("Saving entity {entityId} by user {userId}.", entityId, userId);
This logger should support logging "scopes" object:
Ideally, if I use json logger, it shouldn't be needed to set 'AWS_LAMBDA_HANDLER_LOG_FORMAT' environment variable.
Other Information
No response
Acknowledgements
AWS .NET SDK and/or Package version used
Amazon.Lambda.Logging.AspNetCore Version="3.1.0"
Targeted .NET Platform
.NET6
Operating System and version
AmazonLinux