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

ASP.NET Core Web API - How to resolve conflict between Serilog and Microsoft.Extensions.Logging

在我的 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;
    }
}

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

我该如何解决这个问题?

谢谢

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

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

<ItemGroup>
  <Using Remove="Microsoft.Extensions.Logging" />
</ItemGroup>

有关详细信息,请参阅 here