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

时间:2019-03-27 21:16:08

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

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

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

是否应该启用nuget软件包或其他库或配置以将应用程序连接到Blob存储?我已经花了大约20分钟的时间在这里搜索并在线查找解决方案,但是信息似乎主要是在谈论将日志写入Table Storage。

编辑:更多详细信息:

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

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

以下是一些与相关信息有关的链接:

Streaming from command line

Trace listener question

Adding Trace to existing website

Performance Impact of Logging

Smarx Library

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

enter image description here

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

从那里,还有一个选项可以指定存储帐户: enter image description here

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