• 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、审计接口关联字段图

  • 相关阅读:
    ## 序列化和反序列化
    C#小型资源管理器
    codeforces #310 div1 B
    codeforces #310 div1 A
    BZOJ 1030 文本生成器
    BZOJ 2806 cheat
    BZOJ 2553 禁忌
    BZOJ 4199 品酒大会
    codeforces #309 div1 D
    codeforces #309 div1 C
  • 原文地址:https://www.cnblogs.com/guangmangchen/p/5287817.html
Copyright © 2020-2023  润新知