Azure 云服务(经典)- 将 Diagnostic.Trace 日志记录到 BLOB 存储的任何方式

Azure Cloud Service (Classic) - Any way to log Diagnostic.Trace logs to BLOB storage

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

客户要求这些日志应出现在 blob 存储中,类似于更现代的应用服务日志可以配置为将其诊断写入 blob 存储的方式。期望日志可以批处理并定期上传(可能基于时间或行数)。

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

编辑:更多细节:

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

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

Streaming from command line

Trace listener question

Adding Trace to existing website

Smarx Library

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

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

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

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

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

从那里,还有指定存储帐户的选项:

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