【发布时间】:2018-10-30 17:56:40
【问题描述】:
我使用 .net core web api 作为我的 Angular 应用程序的服务端点。我想跟踪用户活动以进行用户分析。您能否建议跟踪这些活动的最佳做法是什么?
【问题讨论】:
标签: angular asp.net-core asp.net-core-webapi
我使用 .net core web api 作为我的 Angular 应用程序的服务端点。我想跟踪用户活动以进行用户分析。您能否建议跟踪这些活动的最佳做法是什么?
【问题讨论】:
标签: angular asp.net-core asp.net-core-webapi
我正在使用 DotNet core2 和 Angular6,并在我的工作中开发了 2 个应用程序。 我做了一个服务(LogService),在每个功能之后添加一条日志消息 - API(通常是主要功能)。 数据库中的日志表是(id:integer, userId:integer, msg:text or json, operation: enum or text)
并使用 userId 过滤数据。 希望对您有所帮助,这是我关于用户活动跟踪的信息
【讨论】:
您可以从 https://damienbod.com/2017/02/28/implementing-an-audit-trail-using-asp-net-core-and-elasticsearch-with-nest/ 关注 Audit Trail 实施
或者您可以覆盖 .NetCore 中的原始 ILogger。
第 1 步:创建一个继承 ILogger 的类,然后覆盖方法 public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter) 。参考:https://github.com/khainx127/ezStore-microservices/blob/master/source/01.Libraries/Microservice.Core.Logging/MicroserviceLogging.cs
第2步:创建一个类继承ILoggerProvider并在第1步返回一个类的实例。参考:https://github.com/khainx127/ezStore-microservices/blob/master/source/01.Libraries/Microservice.Core.Logging/MicroserviceLoggerProvider.cs
第 3 步:在 Startup 中注册您的提供商:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
...
loggerFactory.AddProvider(new MicroserviceLoggerProvider(serviceProvider.GetService<IBusControl>(), Configuration));
...
}
第四步:在控制器动作中调用_logger.LogInformation("User logged in.");
这是一个想法,我认为您可以更改要写入 Audit Trail 的内容
【讨论】: