Azure应用程序服务上NodeJS应用程序的永久应用程序日志

时间:2019-01-04 04:45:21

标签: node.js azure logging azure-storage azure-web-app-service

我有一个nodejs应用程序,它不过是使用Microsoft的机器人生成器框架构建的BOT。我创建了一个Azure应用服务来托管此应用。我想找到一种将所有应用程序日志和Web服务器日志也持久保存到某个持久性存储中的方法。就像本机Web应用程序一样,我们可以在其中查找应用程序服务器上的日志并调试应用程序问题。

经过一些研究,我发现官方 来自Microsoft的文档,但看起来有以下限制。

  • 我们无法使用应用程序服务的文件存储选项,因为它适合12 小时,因此日志不会永远保存。
  • 当前只能将.NET应用程序日志写入Blob 存储。 Java,PHP,Node.js,Python应用程序日志只能是 存储在文件系统上(无需修改代码即可写入日志) 到外部存储)。

我想检查是否有人尝试过对nodejs应用程序采用任何其他方法。如果是,请分享。

谢谢。

1 个答案:

答案 0 :(得分:1)

因此,我会回答说这实际上不是Bot特有的问题……这意味着如果您正在编写普通的Web API并希望拥有持久日志,那么您将遇到同样的问题。您需要选择一种日志记录技术,使您不仅可以记录文件系统,还可以记录更持久的存储。

由于您使用的是Node,因此您可能希望利用the Winston logging framework,它具有要插入的各种传输的抽象。然后在生产环境中运行时将插入the Azure Storage Blob Transport确保将您的日志写到Azure存储。

仍然,您必须从Azure存储中收集这些数据,然后自己进行汇总,这可能会很痛苦。但是,如果您真的想实时使用分布式跟踪系统,则可能需要考虑使用Application Insights。如果您想避免直接使用AI并将其用作另一个日志流,甚至还可以使用a Winston transport