如何从AWS ElasticBeanStalk应用程序中登录到可访问的日志? [IIS / .NET]

时间:2016-01-18 13:20:00

标签: asp.net amazon-web-services elastic-beanstalk amazon-elastic-beanstalk

我正在尝试使用Amazon ElasticBeanStalk托管我的.Net应用程序,但似乎无法正常访问或设置我的应用程序日志文件。

我目前正在使用Nlog从我的应用程序中进行登录,但我不知道如何访问该日志文件。

我是AWS ElasticBeanStalk的新手,所以我希望有人可以帮我处理应用程序日志。

2 个答案:

答案 0 :(得分:3)

当我联系AWS支持人员询问如何最好地在Elastic Beanstalk上的ASP.NET核心应用程序中记录内容时,我收到了回复,指出无法集成基于Windows的Elastic Beanstalk应用程序'使用实际的Elastic Beanstalk日志进行日志记录,并建议我使用CloudWatch日志记录:

  

您好,

     

beanstalk日志使用它自己的逻辑来收集日志。在里面   linux verison它可以简单地将文件添加到路径中   日志记录,但在Windows中,日志是单独收集的   因为他们使用不同类型的日志驱动程序来收集日志,   因此,无法简单地将文件添加到路径中并查看   它们出现在beanstalk日志中。

     

您可以使用内置beanstalk日志记录而不是使用内置beanstalk日志记录   cloudformation [sic] 记录。

     

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

     

有了这个,您应该能够设置一个允许您使用的记录器   将日志直接发送到亚马逊云观察日志。

     

致以最诚挚的问候,

     以利亚。亚马逊网络服务

上面提到的文档老实说对我来说并不是特别有帮助。但是,有许多代码示例在https://github.com/aws/aws-logging-dotnet登录到CloudWatch,这可能比文档更有用。特别是,我发现使用默认ASP.NET Core日志框架的示例很有帮助,并且已经详细记录了如何让ASP.NET Core ILoggerhttps://stackoverflow.com/a/46146001/1709587登录CloudWatch

答案 1 :(得分:1)

有几种可能性:

  1. 通过RDP访问日志:您打开RDP终端,然后远程下载或查看文件
  2. 使用日志服务器:我们在一个单独的实例上使用graylog并使用日志(使用log4net)。这充分利用了我们对日志数据的使用,因为如果出现问题,我们还可以生成统计信息,仪表板和常见警告。
  3. 使用CloudWatch日志记录工具:我们在设置时遇到了问题;如果行被截断,则需要在实例上配置它,然后在.ebextensions文件中进行配置。
  4. 我们从1开始,然后尝试3.但最后我们转到2,因为它确实给了我们许多优势。许多日志服务器都使用本地(在EB实例上)安装的服务;这是每次部署应用程序时需要正确配置的东西,而不是总是那么容易。使用graylog的当前设置,它只是Web.config或App.Config中的配置项。并且,至少对于log4net来说,它非常容易使用,当从1移动到3时,我们不必更改一行代码。设置graylog服务器非常简单并且AMI存在。