.NET Core - Serilog - IHostBuilder 不包含 UseSerilog() 的定义

phi*_*456 5 serilog asp.net-core

尝试遵循本教程:https : //nblumhardt.com/2019/10/serilog-in-aspnetcore-3/

我设法将 Serilog 添加到我的应用程序 (.NET Core 3.1)

但我无法修改 CreateHostBuilder 函数,因为它无法识别 UseSerilog() 函数

我已经检查了一个解决方案,但似乎每个人都使用该代码

using System;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Serilog;

namespace MyApi
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
            .Enrich.FromLogContext()
            .WriteTo.Console()
            .CreateLogger();

            try
            {
                Log.Information("Starting up");
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Application start-up failed");
            }
            finally
            {
                Log.CloseAndFlush();
            }
        }
                
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseSerilog() // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< unknown function
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

感谢您的帮助

phi*_*456 15

Alex Lyalka 提供的答案:包裹丢失

dotnet add package Serilog.AspNetCore
Run Code Online (Sandbox Code Playgroud)

  • 如果是托管服务:dotnet 添加包 Serilog.Extensions.Hosting (10认同)

小智 5

您必须使用 Serilog.Extensions.Hosting 包。