首页 > 解决方案 > 如何使用 AzureEventHub 设置 Serilog

问题描述

我想将 Serilog 与接收器 AzureEventHub 一起使用,但我找不到任何有关如何设置它的文档。

我正在运行一个 ASP.NET MVC Core 项目。

任何人都有想法或可以提供解决方案的线索?

标签: asp.net-core-mvcserilogazure-eventhub

解决方案


当然,在该接收器上有更多文档会很棒,但整体接收器配置非常标准,因为大多数接收器通常在 Serilog 的LoggerSinkConfiguration类上公开扩展方法,与 Visual Studio 中的智能感知一起,可以为您提供所需的一切配置的角度。

只要确保你安装SerilogSerilog.Sinks.AzureEventHub水槽。

  <ItemGroup>
    <PackageReference Include="Serilog" Version="2.8.0" />
    <PackageReference Include="Serilog.Sinks.AzureEventHub" Version="4.1.0" />
  </ItemGroup>

然后在您的应用程序的开头,创建一个EventHubClient您可以传递的WriteTo.AzureEventHub...您只需要一个有效的连接字符串。

using Microsoft.Azure.EventHubs;
using Serilog;

namespace SerilogAndAzureEventHub
{
    class Program
    {
        static void Main(string[] args)
        {
            EventHubClient eventHubClient =
                EventHubClient.CreateFromConnectionString(
                    "Endpoint=sb://a;SharedAccessKeyName=b;SharedAccessKey=c;EntityPath=d");

            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Verbose()
                .WriteTo.AzureEventHub(eventHubClient)
                .CreateLogger();
        }
    }
}

推荐阅读