无法识别 Serilog 的 AddSerilog

Serilog's AddSerilog is not recognized

我正在尝试根据 this 文档调用 loggerFactory.AddSerilog();,但是 AddSerilog 方法无法识别:

“错误 CS1061 'ILoggerFactory' 不包含 'AddSerilog' 的定义并且没有扩展方法 'AddSerilog' 接受第一个...”。

我正在使用 ASP.NET CORE 和完整的 .NET 框架。 我做错了什么?

您可能会忘记 project.json

中的以下这行

"Serilog.Extensions.Logging": "1.0.0",

另见 https://carlos.mendible.com/2016/09/19/step-step-serilog-asp-net-core/

发布的答案是正确的,但我要补充一点,您可能希望使用 NuGet 包管理器,这样您可以获得最新版本。

Right click on solution

-> Choose "Manage NuGet packages for solution"

-> type "serilog.extensions.logging" into search box

-> Click on Serilog.Extensions.Logging and press install

您将获得一个包含不同版本的下拉列表,您应该选择最新版本。

或者更快地从包管理器控制台验证默认项目下拉列表是否选择了您的项目并且运行

install-package Serilog.Extensions.Logging

不同的情况,但同样的问题。就我而言,我使用的是 .Net Core 2.1 并且有一个对 Serilog 的 NuGet 引用,但缺少对 Serilog.AspNetCore 的引用.该问题首先表现为 Program.cs.

下我的 CreateWebHostBuilder 静态方法的 IWebHostBuilder 未找到 .UserSerilog()

Serilog.AspNetCore NuGet 包添加到我的项目中解决了问题。

在 .NET Core 3.1 上,在控制台应用程序中,我只需安装 serilog.extentions.hosting NuGet 包。

这会将以下行添加到 YourProjectName.csproj

中的 ItemGroup
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.7" />

如果您已经将包 Serilog.Extensions.Logging 添加到您的项目中,只需将 using Serilog; 添加到您的代码文件的顶部即可。