遇到的問題/需求 1. 這裡會把一些敏感的參數記錄下來,我們需要屏蔽掉,如圖 2. 我們希望日誌裡面有當前登錄用戶的信息,如圖: 處理方法 tip:這裡用的是.net非.net core 第一個問題(屏蔽敏感參數): 第二個問題(添加擴展信息) 直接看代碼/註釋吧 當然需要在 的 方法中調用 其他 ...
遇到的問題/需求
這裡會把一些敏感的參數記錄下來,我們需要屏蔽掉,如圖
我們希望日誌裡面有當前登錄用戶的信息,如圖:
處理方法
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