【问题标题】:Azure Cloud Service (Classic) - Any way to log Diagnostic.Trace logs to BLOB storageAzure 云服务(经典)- 以任何方式将 Diagnostic.Trace 日志记录到 BLOB 存储
【发布时间】:2019-08-18 13:45:56
【问题描述】:

有人要求我将旧的 Azure 云服务工作人员的日志记录更改为 System.Diagnostics.Trace 日志记录样式。我已经这样做了,现在我准备将它部署到天蓝色。

客户端要求这些日志应出现在 Blob 存储中,类似于如何配置更现代的应用服务日志以将其诊断信息写入 Blob 存储。期望日志可以定期批量和上传(可能基于时间或行数)。

是否有一个 nuget 包或其他库或配置我应该启用以将应用程序连接到 blob 存储?我花了大约 20 分钟在这里和在线搜索解决方案,但信息似乎主要谈论将日志写入表存储..

编辑:更多细节:

  • 这是一个用于使用外部日志服务的现有应用程序 (C# .Net Framework 4.5)。
  • 我认为(我认为是错误的)日志记录到 Blob 存储是我可以在 Azure 门户中配置的。
  • 就目前情况而言,不会生成任何类型的日志文件,但是当我在 Visual Studio 中运行代码时,我可以从日志语句中看到一些输出
  • 我已更新代码以使用标准(自定义)日志记录系统 最终归结为使用如下语句:

Trace.TraceInformation($"DEBUG: {message}");

以下是我找到的一些相关信息链接:

Streaming from command line

Trace listener question

Adding Trace to existing website

Performance Impact of Logging

Smarx Library

【问题讨论】:

  • 您能否提供更多详细信息,实际上已经开发了改变日志外观的应用程序?如果是这样,它现在是否在本地生成日志文件?这些将为我们提供一个很好的范围来帮助您解决问题。
  • 好的,我会更新问题..
  • 完成,希望我已经解决了问题:)

标签: azure logging azure-blob-storage trace azure-cloud-services


【解决方案1】:

日志由diagnostics.wadcfgx 文件配置,您可以在解决方案中看到该文件。

这包含您要收集的所有诊断信息。这可以通过 Web\Worker 角色的“属性”来控制(右键单击 -> 属性)。

从那里,还可以选择指定存储帐户:

如果您要部署到多个环境,这并不总是理想的,因此您应该能够从 Azure 门户更改配置,方法是下载和上传新配置 following these instructions

【讨论】:

    【解决方案2】:

    所以记录到 blob 存储,将其视为将现有文件上传到 blob 存储。如果您当前的应用程序创建文件,那么您应该使用 put blob 属性或 blob append 将这些文件添加到 blob 存储。因此,您必须与存储 SDK 交互才能进行这些事务。您还可以利用logic apps,它使用连接器来进行 Blob 存储,并根据特定触发器(时间戳和其他条件)执行某些操作。

    如果您想在 Azure 存储中查看生成的日志,您必须发送至 enable azure diagnostics,但这些日志将与存储帐户本身相关,而不是您的应用。

    由于您提到您看到了输出,您必须将该输出作为对象传输:(文本文件),然后将其上传到存储帐户。您可以找到 C# here 的 SDK 信息。我希望这会有所帮助。

    【讨论】:

    • 好的,所以答案基本上是“构建一些东西来上传日志”。我在想有一个“标准”的方式来连接两者。感谢提供线索!
    • 正确 :) ,不,遗憾的是我们没有集成服务来执行此类操作,但它应该不是很复杂,您也可以在 GitHub 中找到几个示例
    • 请你分享一个这样的例子吗?
    猜你喜欢
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    相关资源
    最近更新 更多