当前位置: 移动技术网 > IT编程>开发语言>.net > Exceptionless应用--自定义插件

Exceptionless应用--自定义插件

2019年12月06日  | 移动技术网IT编程  | 我要评论

昊天罔极之浑水摸鱼,杰西达邦的妻子照片,莫里亚蒂的手机铃声

遇到的问题/需求

  1. 这里会把一些敏感的参数记录下来,我们需要屏蔽掉,如图

  2. 我们希望日志里面有当前登录用户的信息,如图:

处理方法

core

第一个问题(屏蔽敏感参数):

exceptionlessclient.default.configuration.adddataexclusions("password", "password", "token", "token");

第二个问题(添加扩展信息)

直接看代码/注释吧

    public class exceptionlessconfig
    {
        public static void configure()
        {
            //添加自定义插件
            exceptionlessclient.default.configuration.addplugin<exceptionlessuserplugin>();
            //exceptionlessclient.default.configuration.adddataexclusions("password", "password", "token", "token");
        }

        /// <summary>
        /// 日志添加用户信息
        /// </summary>
        public class exceptionlessuserplugin : ieventplugin
        {
            public void run(eventplugincontext context)
            {
                ijsonserializer serializer = context.client.configuration.resolver.getjsonserializer();
                userinfo userinfo = 获取当前登录用户信息;
                //设置用户信息
                adduser(context, userinfo, serializer);
            }

            private static void adduser(eventplugincontext context, userinfo userinfo, ijsonserializer serializer)
            {
                exceptionless.models.data.userinfo user = context.event.getuseridentity(serializer);
                if (user != null || userinfo == null)
                    return;
                //设置当前登录用户信息
                context.event.setuseridentity(new exceptionless.models.data.userinfo
                {
                    //用户id
                    identity = userinfo.userid, 
                    //用户所在公司名--用户名
                    name = $"{userinfo.companyname}-{userinfo.username}", 
                    //扩展信息
                    data = new exceptionless.models.datadictionary(new list<keyvaluepair<string, object>> {
                        new keyvaluepair<string, object>("公司id", userinfo.companyid),
                        new keyvaluepair<string, object>("公司名称", userinfo.comanyname)
                    })
                });
            }
        }
    }

当然需要在global.csapplication_start方法中调用exceptionlessconfig.configure();

其他

context.event还有很多扩展,比如添加标签、添加属性...看需求了

over

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网