Exceptionless应用--自定义插件
程序员文章站
2022-03-12 08:31:36
遇到的问题/需求 1. 这里会把一些敏感的参数记录下来,我们需要屏蔽掉,如图 2. 我们希望日志里面有当前登录用户的信息,如图: 处理方法 tip:这里用的是.net非.net core 第一个问题(屏蔽敏感参数): 第二个问题(添加扩展信息) 直接看代码/注释吧 当然需要在 的 方法中调用 其他 ......
遇到的问题/需求
这里会把一些敏感的参数记录下来,我们需要屏蔽掉,如图
我们希望日志里面有当前登录用户的信息,如图:
处理方法
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.cs
的application_start
方法中调用exceptionlessconfig.configure();
其他
context.event
还有很多扩展,比如添加标签、添加属性...看需求了
over