如何在 Azure Service Fabric 中查看跟踪日志记录

How to view trace logging in Azure Service Fabric

我有一个现有的应用程序,我要将其从 Azure Web Apps 迁移到 Service Fabric。我有很多使用 Microsoft 的 Microsoft.Extensions.Logging.ILogger 抽象的特定于应用程序的日志记录代码,给定适当的提供程序(控制台,azure web 应用程序)给我控制台和 LogStream 输出。效果很好。

使用 Service Fabric 时查看这些应用程序日志的最简单方法是什么?

您可以使用 EventFlow 捕获日志并转发到目标存储,如 ApplicationInsights。 您仍然可以使用现有的 ILogger 或将其替换为使用 ETW。

例如,如果您要写入日志以进行跟踪并且它们捕获跟踪信息以转发到另一个存储,您必须:

添加对包的引用Microsoft.Diagnostics.EventFlow

创建 eventFlowConfig.json 文件来定义输入和输出:

{
    "inputs": [
        {
            "type": "Trace",
            "traceLevel": "Warning"
        }
    ],
    "outputs": [
        {
            "type": "ApplicationInsights",
            "instrumentationKey": "00000000-0000-0000-0000-000000000000"
        }
    ]
}

使用 EventFlow 管道包装您的 webapp 初始化:

  using (var pipeline = DiagnosticPipelineFactory.CreatePipeline("eventFlowConfig.json"))
    {
        //App initialization goes here
        System.Diagnostics.Trace.TraceWarning("EventFlow is working!");
        Console.ReadLine();//this will be replaced by your webHost start
    }

你可以有很多输入,所以如果你还想监视 ETW 事件,你也可以将它添加到输入列表中。