审计Asp.NET Boilerplate中方法中的日志记录方法



我一直在从事ASP.NET BoilerPlate项目,希望在该项目中使审计日志记录更加详细。

所以我得到了一个方法,它调用不同的其他方法,但在审计日志中,它只显示被调用的第一级方法。

例如:

public class AuditLogAppService : TestAppServiceBase, IAuditLogAppService
{
...
public async Task<FileDto> GetTestInputToFile(GetTestInput input)
{
TestAuditInterception();
...
return testExporter.ExportToFile(testDtos);
}
}

它确实审核日志GetTestInputToFile方法,但不记录TestAuditInterception((。

正如我阅读的文件,它说:

方法必须是公共的,才能保存审核日志。将忽略私有方法和受保护方法。不过,我不确定这是否是我的情况。

有没有办法在记录的方法(TestAuditInterception(((中记录该方法?

我假设此服务公开为API控制器。我还假设这是一个ASP.NET核心应用程序(而不是MVC 5.x(

在这种情况下,没有内置的方法。只会记录入口方法。这是经过设计的。

在大多数情况下,这对于审计日志记录来说是一种很好的行为,因为客户端(或用户(调用了一个公共方法,然后该方法可能会调用另一个私有方法。无需记录整个调用堆栈。只应记录入口点。

此外,我们不建议从另一个方法调用公共应用程序服务方法,这是一种很好的做法。如果要重用代码,请将公共部分移到专用方法中。

如果你仍然想要,你可以在Github上创建一个问题(https://github.com/aspnetboilerplate/aspnetboilerplate/issues/new),所以我们会在下一个版本中考虑它。

最新更新