Abp框架之审计日志

  ABP对审计功能封装的非常好,虽然是很简单的功能,但是抽象出来并不容易,接下来看看作者是怎么抽象的。

一般地,要保存的字段是:

tenant id(相关的租户Id),

user id(请求用户Id),

server name(请求的服务名称【调用方法对应的类】),

method name(调用方法名称),

parameters(方法的参数【JSON格式】),

execution time(执行时间),

duration (执行耗时时间【通常是毫秒】),

IP address (客户端IP地址),

computer name(客户机名称),

exception (异常【如果方法抛出异常】)等信息。

审计系统使用IAbpSession来获得当前的UserId和TenantId。

 

1、配置

审计日志默认是开启的,可以用如下代码关闭

public class MyModule : AbpModule
{
    public override void PreInitialize()
    {
         Configuration.Auditing.IsEnabled = false;   //关闭审计日志,默认为True
         Configuration.Auditing.IsEnabledForAnonymousUsers = false;   //未登录的用户是否记录日志,默认false
         Configuration.Auditing.MvcControllers.IsEnabled = false;  //用于为MVC控制器开启或关闭审计。默认为true(MVC控制器审计单独配置)
         Configuration.Auditing.MvcControllers.IsEnabledForChildActions = true;  //用于为子MVC action开启或关闭审计。默认为false。 
         Configuration.Auditing.Selectors.Add(             //如果你不喜欢为应用服务保存审计日志,那么你可以通过名称移除选择器。
            new NamedTypeSelector(
                "ABP.Application",
                type => typeof(IApplicationService).IsAssignableFrom(type)
            ));
    }
}

也可以为一个单独的类或方法使用Audited和 DisableAuditing特性

[Audited]
public class MyClass
{
    public void MyMethod1(int a)
    {
        //...
    }

    [DisableAuditing]
    public void MyMethod2(string b)
    {
        //...
    }
}

2、审计接口关联字段图

原文地址:https://www.cnblogs.com/guangmangchen/p/5287817.html