ASP.NET Core Web API - 如何解决 Serilog 和 Microsoft.Extensions.Logging 之间的冲突

Ayo*_*aye 3 c# asp.net-web-api serilog

在我的 ASP.NET Core-6 Web API 中,我安装了 Serilog。我从未安装过 Microsoft.Extensions.Logging

但令我惊讶的是,当我想使用以下方式引用 Serilog 时:

using ILogger = Serilog.ILogger;

public class AuthController : BaseApiController
{
    private readonly ILogger<AuthController> _logger;
    private IAuthService _authService;

    public AuthController(ILogger<AuthController> logger, IAuthService authService)
    {
        _logger = logger;
        _authService = authService;
    }
}
Run Code Online (Sandbox Code Playgroud)

ILogger自动检测Microsoft.Extensions.Logging,我无法更改为Serilog。

我该如何解决这个问题?

谢谢

小智 6

.NET 6 默认情况下会在文件中启用“隐式使用”( <ImplicitUsings>enable</ImplicitUsings>) .csproj。ASP.NET Core 6 默认包含Microsoft.Extensions.Logging.

您可以“禁用”所有“使用”或 在文件Microsoft.Extensions.Logging中明确删除.csproj

<ItemGroup>
  <Using Remove="Microsoft.Extensions.Logging" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

请参阅此处了解更多信息。