c# - 使用 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 标识一起使用吗?我无法为它配置它。
解决方案
我假设您使用的是 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 进行相当多的调整。
推荐阅读
- android - Android Pie:WebView 在某些网站上显示纯 HTTP 错误,即使使用 usesClearTextTraffic="true"
- java - JAVA 8:如何在一行中初始化列表列表
- python - 如何将额外的参数传递给 django 日志格式化程序
- python - 将我自己的数据添加到 Python 中的 Plotly 图表中?
- jenkins - 当从 github Jenkins 管道中删除分支时,有没有办法自动删除分支而不是交叉线
- mpi - 重叠的通信和计算问题
- symfony - 在 Symfony 中有条件地隐藏一些嵌入的表单字段(集合)
- javascript - 将根 JSON 对象值设置为数组
- raspberry-pi - 在 Arduino 上设置 ATSAM3X8E 以进行 SPI 从机操作
- c - MPI_File_write C