首页 > 解决方案 > 使用 serilog 从 ASP.Net 核心身份记录事件

问题描述

也许有人已经回答了类似的问题,但我找不到它 - 如果是这样,我会很高兴链接到它。

我正在使用带有 ASP.Net 核心的 serilog 来记录各种事件,当涉及到我的服务时,它非常简单,我只是将记录器注入服务并在那里使用它,但我也想记录用户登录等事件,用户注销,用户注册等所有这些都使用 serilog 归档,但我什至不知道如何制作。Asp 身份使用剃须刀页面,并且没有用于登录的控制器。我发现用户管理器中有记录器https://docs.microsoft.com/pl-pl/dotnet/api/microsoft.aspnetcore.identity.usermanager -1.logger?view=aspnetcore-2.2但是没有关于它的描述,而且可能不是这样。有人知道如何将 serilog 与 ASP.Net Core 标识一起使用吗?我无法为它配置它。

标签: c#asp.net-coreasp.net-identityserilog

解决方案


我假设您使用的是 ASP.NET Core Identity 附带的默认 Identity UI。您是对的,此 UI(默认情况下)使用 Razor Pages,而 Razor Pages 不使用控制器。

但是,您仍然可以将依赖项注入 Razor Pages,只需为 PageModel 添加一个构造函数:

public class ExamplePageModel : PageModel
{
    private readonly ILogger<ExamplePageModel> _logger;

    public ExamplePageModel(ILogger<ExamplePageModel> logger)
    {
        _logger = logger;
    }

    public async Task OnPostAsync()
    {
        _logger.LogInformation("Doing something");
        // …
    }
}

当然,这意味着您现在必须对默认的 Identity UI 进行相当多的调整。


推荐阅读