回答

2

有沒有辦法使基於Windows的應用程序的日誌在彈性魔豆界面顯示出來。我特意問AWS這種支持幾個月前,並取得了以下回復告訴我使用的CloudWatch來代替:

你好,

魔豆日誌使用它自己的邏輯來收集日誌。在它的linux版本中,可以簡單地將文件添加到日誌記錄的路徑 ,但在Windows中,由於日誌使用不同類型的日誌記錄驅動程序來收集日誌,因此單獨收集日誌 ,因此它是不可能簡單地將文件添加到路徑中,並參見 它們顯示在beanstalk日誌中。

你可以做什麼,而不是使用內置的豆莖日誌記錄是使用 雲形成[原文]日誌代替。

http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html

這個你應該能夠建立一個記錄器,讓你 直接將日誌發送到亞馬遜CloudWatch的日誌。

此致敬禮

elijah f。亞馬遜網絡服務

這可能是謹慎的,你要避免所有的日誌記錄代碼緊密結合,以 - 你把它的問題 -「看到輸出的專有AWS方式」。但是,通過使用ASP.NET Core框架的standard loggingAWS.Logger.AspNetCore日誌記錄提供程序(它將ASP.NET Core的內置記錄程序與CloudWatch集成在一起),可以僅使用CloudWatch,並使用寬鬆的耦合。

基於對我在當前公司的代碼庫中添加此功能的承諾的一瞥,我認爲爲了使其工作,我必須進行以下更改,主要基於官方ASP。在https://github.com/aws/aws-logging-dotnet/tree/master/samples/AspNetCore/WebSample NET核心CloudWatch的集成示例:

  1. 運行

    Install-Package AWS.Logger.Core 
    Install-Package AWS.Logger.AspNetCore 
    
  2. 添加

    loggerFactory.AddAWSProvider(Configuration.GetAWSLoggingConfigSection()); 
    

    我的應用程序的

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    

    方法Startup.cs(該模板應用程序包含對loggerFactory.AddConsole(Configuration.GetSection("Logging"));loggerFactory.AddDebug();調用同一個地方。在http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.cloudwatchlogs.html#AWSHowTo.cloudwatchlogs.permissionshttps://console.aws.amazon.com/iam/home#/policies

    { 
        "AWS.Logging": { 
        "Region": "us-west-2", 
        "LogGroup": "put-whatever-name-you-like-here", 
        "LogLevel": { 
         "Default": "Debug", 
         "System": "Information", 
         "Microsoft": "Information" 
        } 
        }, 
        ... 
    } 
    
  3. 中的說明,創建自定義策略具有以下內容:

  4. 添加AWS.Logging部分我appsettings.config文件的根

    { 
        "Version": "2012-10-17", 
        "Statement": [ 
        { 
         "Effect": "Allow", 
         "Action": [ 
         "logs:CreateLogGroup", 
         "logs:CreateLogStream", 
         "logs:GetLogEvents", 
         "logs:PutLogEvents", 
         "logs:DescribeLogGroups", 
         "logs:DescribeLogStreams", 
         "logs:PutRetentionPolicy" 
         ], 
         "Resource": [ 
         "arn:aws:logs:us-west-2:*:*" 
         ] 
        } 
        ] 
    } 
    

    和那麼在https://console.aws.amazon.com/iam/home#/roles/aws-elasticbeanstalk-ec2-role附加到了aws-elasticbeanstalk-ec2-role。 (注意:us-west-2在上面的JSON是具體到我的應用程序,因爲這是它部署在該地區,並aws-elasticbeanstalk-ec2-role是彈性魔豆實例默認角色 - 你可能需要將策略附加到不同的角色,如果你「再撫養情況下具有不同的作用。)

一旦所有做到這一點,你​​S的關係登錄到CloudWatch的。如果您轉到https://console.aws.amazon.com/cloudwatch/home,請在邊欄中單擊「日誌」,然後單擊名稱與appsettings文件中的LogGroup設置名稱相匹配的日誌組,您應該能夠看到您的日誌。

相關問題