具體而言,我對能夠通過界面查看輸出感興趣。例如,是否有無法使ILogger.LogFoo
方法或Console.WriteLine
顯示在監控或日誌選項卡或其他任何地方?如何調試或查看部署在Elastic Beanstalk中的.NET Core應用程序的輸出?
我試圖遠離專有的AWS查看輸出的方式,以防應用程序需要部署到別處。
具體而言,我對能夠通過界面查看輸出感興趣。例如,是否有無法使ILogger.LogFoo
方法或Console.WriteLine
顯示在監控或日誌選項卡或其他任何地方?如何調試或查看部署在Elastic Beanstalk中的.NET Core應用程序的輸出?
我試圖遠離專有的AWS查看輸出的方式,以防應用程序需要部署到別處。
有沒有辦法使基於Windows的應用程序的日誌在彈性魔豆界面顯示出來。我特意問AWS這種支持幾個月前,並取得了以下回復告訴我使用的CloudWatch來代替:
你好,
魔豆日誌使用它自己的邏輯來收集日誌。在它的linux版本中,可以簡單地將文件添加到日誌記錄的路徑 ,但在Windows中,由於日誌使用不同類型的日誌記錄驅動程序來收集日誌,因此單獨收集日誌 ,因此它是不可能簡單地將文件添加到路徑中,並參見 它們顯示在beanstalk日誌中。
你可以做什麼,而不是使用內置的豆莖日誌記錄是使用 雲形成[原文]日誌代替。
http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html
這個你應該能夠建立一個記錄器,讓你 直接將日誌發送到亞馬遜CloudWatch的日誌。
此致敬禮
elijah f。亞馬遜網絡服務
這可能是謹慎的,你要避免所有的日誌記錄代碼緊密結合,以 - 你把它的問題 -「看到輸出的專有AWS方式」。但是,通過使用ASP.NET Core框架的standard logging和AWS.Logger.AspNetCore
日誌記錄提供程序(它將ASP.NET Core的內置記錄程序與CloudWatch集成在一起),可以僅使用CloudWatch,並使用寬鬆的耦合。
基於對我在當前公司的代碼庫中添加此功能的承諾的一瞥,我認爲爲了使其工作,我必須進行以下更改,主要基於官方ASP。在https://github.com/aws/aws-logging-dotnet/tree/master/samples/AspNetCore/WebSample NET核心CloudWatch的集成示例:
運行
Install-Package AWS.Logger.Core
Install-Package AWS.Logger.AspNetCore
添加
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.permissions在https://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"
}
},
...
}
中的說明,創建自定義策略具有以下內容:
添加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
設置名稱相匹配的日誌組,您應該能夠看到您的日誌。