Exceptionless应用--自定义插件
遇到的问题/需求
这里会把一些敏感的参数记录下来,我们需要屏蔽掉,如图
我们希望日志里面有当前登录用户的信息,如图:
处理方法
tip:这里用的是.net非.net 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
Exceptionless应用--自定义插件的更多相关文章
- 深入学习jQuery自定义插件
原文地址:jQuery自定义插件学习 1.定义插件的方法 对象级别的插件扩展,即为jQuery类的实例增加方法, 调用:$(选择器).函数名(参数); $(‘#id’).myPlugin(o ...
- jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
上一篇记录了BaiduTemplate模板引擎使用示例附源码,在此基础上对使用方法进行了封装 自定义插件jajaxrefresh.js 代码如下: //闭包限定命名空间 (function ($) { ...
- Phonegap中自定义插件的使用
在phonegap中需要实现特定相关的功能,可能需要自定义扩展一下功能,那么扩展phonegap组件就成为了可能. 源代码结构图: 本文目的在于讲述怎么扩展一个phonegap组件以及实现. 针对ph ...
- jquery自定义插件——以 选项卡插件为例
一直打算尝试自定义插件,终于付诸实践了,现在把内容发表出来,与大家共勉. 我是根据自己正在用的插件,模仿其源码,实现的自定义插件,完成之后,在网上看相关资料,对自定义插件部分,有了更明确的认识. jq ...
- Cordova - 与iOS原生代码交互2(使用Swift开发Cordova的自定义插件)
在前一篇文章中我介绍了如何通过 js 与原生代码进行交互(Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)),当时是直接对Cordova生成的iOS工程项目进行编辑操作的(添加 ...
- jQuery自定义插件
jQuery自定义插件 jQuery自定义插件按照功能分类,可以分为三类, 1>封装对象方法的插件,(也就是基于某个DOM元素的jQuery对象,局部的) 2>封装全局函数的插件, ( ...
- cordova3.X 运用grunt生成plugin自定义插件骨架
Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.Cordova还提供了一组统一的JavaScript类库,以及为这些 ...
- cordova /phonegap 自定义插件
### cordova /phonegap 自定义插件 在使用cordova 的过程中,虽然官方提供的插件以及其他人开源的插件较多.但有时为了实现某种需求,还是需要自己编写插件. 以前总是会手动的配置 ...
- gulp如何自定义插件
gulp是基于”流“的构建工具,上层流的输出就是下层流的输入,为了更好的支持链式操作,可以使用through2或者map-stream这两个库来对node stream做一层包装 这里,我们就使用th ...
随机推荐
- ThinkPHP5——route(路由)的详解
路由在框架中的作用打个比方的话,路由好比是WEB应用的总调度室,对于访问的URL地址,路由可以拒绝或者接受某个URL请求,并进行分发调度,而且还有一个副作用是因为路由规则可以随意定义,因此可以让你的U ...
- 【Python成长之路】python 基础篇 -- 装饰器【华为云分享】
[写在前面] 有时候看到大神们的代码,偶尔会用到@来装饰函数.当时查了资料,大致了解装饰器一般用于在不改变原函数的基础上 ,对原函数功能进行修改/增强.使用场景是:日志级别设置.权限校验.性能测试等. ...
- 华为OSPF与ACL综合应用实例讲解
OSPF与ACL综合应用实例讲解 项目案例要求: 1.企业内网运行OSPF路由协议,区域规划如图所示:2.财务和研发所在的区域不受其他区域链路不稳定性影响:3.R1.R2.R3只允许被IT登录管理:4 ...
- 简单易懂的ftp脚本自动登录教程
我在上上篇<nmon脚本--对Linux服务器的监控>的脚本中,使用了ftp的自动登录.结果有人询问,遂决定专门写一篇简单易懂的博客,来说明如何解决ftp的自动登录问题. 一.Window ...
- 获取iOS设备的型号
获取iOS设备的型号 需要#import "sys/utsname.h" structutsname systemInfo; uname(&systemIn ...
- 2019CCPC秦皇岛 K MUV LUV UNLIMITED(博弈)
MUV LUV UNLIMITED Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- POJ2528 Mayor's poster
The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign h ...
- TypeScript - 泛型
什么是泛型 官方是这样介绍的: 软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性. 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵 ...
- ARTS-S linux常用命令
压缩 把文件夹test压缩成test.tar.gz tar -czvf test.tar.gz test centos同步网上时间 cp /usr/share/zoneinfo/Asia/Shangh ...
- MySQL InnoDB 存储引擎原理浅析
注:本文主要基于MySQL 5.6以后版本编写,多数知识来着书籍<MySQL技术内幕++InnoDB存储引擎>,本文章仅记录个人认为比较重要的部分,有兴趣的可以花点时间读原书. 一.MyS ...