gpt4 book ai didi

azure - 控制台应用程序日志存储在 Azure 存储中

转载 作者:行者123 更新时间:2023-12-03 04:59:44 26 4
gpt4 key购买 nike

我正在使用一个控制台应用程序,该应用程序在任务计划程序触发的本地服务器上运行。该控制台应用程序执行各种操作并需要记录这些操作。每次运行它会生成大约 200kb 的日志,控制台应用程序每小时运行一次。

由于我们无法访问服务器,我计划将日志存储到 Azure。我读到了有关 blob/表存储的内容。

我想知道在 Azure 中存储日志的最佳策略是什么。

谢谢。

最佳答案

虽然您可以在 Azure 存储中写入日志记录数据(Blob 和表),但如果您使用 Azure Application Insights 实际上会更有意义。用于记录此数据。

我最近对我构建的控制台应用程序做了同样的事情。我发现它非常简单。

我在 Azure 订阅中创建了 App Insight 资源并获取了检测 key 。然后我安装了App Insights SDK并在我的项目中引用了适当的命名空间。

using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;

这就是我初始化遥测客户端的方式:

                var appSettingsReader = new AppSettingsReader();
var appInsightsInstrumentationKey = (string)appSettingsReader.GetValue("AppInsights.InstrumentationKey", typeof(string));

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
configuration.InstrumentationKey = appInsightsInstrumentationKey;
telemetryClient = new TelemetryClient(configuration);
telemetryClient.InstrumentationKey = appInsightsInstrumentationKey;

为了记录跟踪数据,我简单地执行了以下操作:

                            TraceTelemetry telemetry = new TraceTelemetry(message, SeverityLevel.Verbose);
telemetryClient.TrackTrace(telemetry);

为了记录错误数据,我简单地执行了以下操作:

            catch (Exception excep)
{
var message = string.Format("Error. {0}", excep.Message);
ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(excep);
telemetryClient.TrackException(exceptionTelemetry);

telemetryClient.Flush();
Task.Delay(5000).Wait();//Wait for 5 seconds before terminating the application
}

但请记住一件事:确保在终止应用程序之前等待一段时间(5 秒就足够了)来刷新数据。

<小时/>

如果您仍然热衷于将日志写入 Azure 存储,根据您使用的日志记录库,您将找到合适的适配器直接写入 Azure 存储。

例如,Azure 表有一个 NLog 目标:https://github.com/harouny/NLog.Extensions.AzureTableStorage (尽管这个项目没有得到积极维护)。

关于azure - 控制台应用程序日志存储在 Azure 存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60447353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com