如何查看请求日志 Service Fabric 应用程序

How to see request logs Service Fabric Application

我想知道是否有办法在我的服务结构应用程序已经发布在 Azure 服务器上时查看对它发出的所有请求,或者至少捕获所有请求并将它们保存在某个地方,我需要信息像源和正文。

提前致谢!

要查看所有请求和响应,您首先需要将它们登录到某处。以下是可用的方法:

  • 流式传输到 VS Cloud Explorer

您可以使用 ServiceEventSource 来记录有价值的信息和 然后您将能够通过以下方式连接到您的 SF 集群来查看它 VS 中的 CloudExplorer。您可以在此处找到更多信息 - 调试您的 使用 Visual 的 Service Fabric 应用程序 工作室.

  • Windows Azure 诊断

您可以在 VM 上安装的 WAD 扩展将日志上传到 Azure 存储,并且还可以选择将日志发送到 Azure Application Insights 或事件中心。查看 Event aggregation and collection using Windows Azure Diagnostics.

  • EventFlow

使用 EventFlow 可以让服务将它们的日志直接发送到分析和可视化平台,and/or 到存储。其他库(ILogger、Serilog 等)可能用于相同目的,但 EventFlow 的优势在于专为进程内日志收集和支持 Service Fabric 服务而设计。

  • 使用 OMS 进行事件分析和可视化

配置 OMS 后,您将有权访问特定的 OMS 工作区,从中可以在仪表板中查询或可视化数据。 Log Analytics 收到数据后,OMS 有多个管理解决方案,这些管理解决方案是预先打包的解决方案,用于监控传入数据,并针对多个场景进行定制。其中包括 Service Fabric Analytics 解决方案和 Containers 解决方案,它们是使用 Service Fabric 群集时与诊断和监视最相关的两个解决方案。在 Event analysis and visualization with OMS and Assess Service Fabric applications and micro-services with the Azure portal.

上查找更多信息

您可以通过多种方式捕获源代码和正文,或者您需要的任何内容。您可以在下面找到一些:

  1. 在你的控制器上应用 ActionFilterAttribute class 如果你不这样做 有一个,并在 OnActionExecuted 方法中记录您需要的所有信息

  2. 在启动中添加中间件class -

    public static void ConfigureApp(IAppBuilder appBuilder)
    {
        // Configure Web API for self-host. 
        HttpConfiguration config = new HttpConfiguration();
    
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    
    
        appBuilder.Use(async (IOwinContext context, Func<Task> next) =>
        {
            await next.Invoke();
            // log anything you want here
            ServiceEventSource.Current.Message($"Response status code = {context.Response.StatusCode}");
        });
    
        appBuilder.UseWebApi(config);
    }