首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ConsoleLogger在aws lambda版本3.1中无序写入日志

ConsoleLogger在aws lambda版本3.1中无序写入日志
EN

Stack Overflow用户
提问于 2020-10-28 04:58:17
回答 2查看 145关注 0票数 0

我们有一个带有.net核心3.1的AWS lambda,我们使用依赖注入来添加一些服务,其中一个服务是ConsoleLogger,我们像这样注入记录器:

代码语言:javascript
运行
复制
private void ConfigureServices(IServiceCollection services)
{
    this.Configuration = new ConfigurationBuilder().AddEnvironmentVariables().Build();
    services.AddOptions();
    services.AddLogging(builder =>
    {
        builder.AddConsole((x) =>
        {
            x.DisableColors = true;
            x.Format = Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat.Systemd;
        });
    });
    
    // more services
}

然后在函数中,我们像这样使用记录器:

代码语言:javascript
运行
复制
[LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
public async Task Handle(ILambdaContext lambdaContext)
{
    var logger = this.ServiceProvider.GetService<ILogger<MyClass>>();

    string startTime = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture);
    logger.LogInformation($"Start Time stamp:{startTime}|AwsRequestId:{lambdaContext.AwsRequestId}");
    
    // more work
    logger.LogInformation("processing x");
    // more work
    string endTime = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture);
    logger.LogInformation($"End Time stamp:{endTime}|AwsRequestId:{lambdaContext.AwsRequestId}");
}

问题是,在cloudwatch中,日志是无序的。

甚至连费用报告都在我进入之前。

有没有办法避免这种情况?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-07 01:02:51

ConsoleLogger在内部队列中缓冲消息,所以它们可能会在那里延迟,这与CloudWatch无关。亚马逊自己的CloudWatch日志库做了同样的事情,他们在自己的文档中指出,这可能是Lambdas的问题:https://github.com/aws/aws-logging-dotnet/#aws-lambda

他们推荐的解决方案是使用Amazon.Lambda.Logging.AspNetCore,它不做任何缓冲。

票数 1
EN

Stack Overflow用户

发布于 2020-10-28 06:12:30

不我不相信你能用CloudWatch做到这一点。CloudWatch保证交付,而不是及时交付。您可以设置Dynamo或ElasticSearch数据库,并将日志消息写入带有时间戳的数据库。在检索时,您可以按时间戳排序。与使用CloudWatch相比,这还使您能够更好地控制邮件过滤。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64562804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档