|
|
|
@ -0,0 +1,70 @@
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Diagnostics.Tracing;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
|
|
|
|
|
namespace LogStudy.EventLog.Next
|
|
|
|
|
{
|
|
|
|
|
public class CustomEventListener : EventListener
|
|
|
|
|
{
|
|
|
|
|
protected override void OnEventSourceCreated(EventSource eventSource)
|
|
|
|
|
{
|
|
|
|
|
if (eventSource.Name.StartsWith("EventLogNext-"))
|
|
|
|
|
{
|
|
|
|
|
EnableEvents(eventSource, EventLevel.Verbose);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 处理事件
|
|
|
|
|
/// 其中 PayloadName 是个数组,表示事件源方法的形参数名称列表
|
|
|
|
|
/// Payload也是个数组,为 PayloadName 形参列表对应的实参列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="eventData"></param>
|
|
|
|
|
protected override void OnEventWritten(EventWrittenEventArgs eventData)
|
|
|
|
|
{
|
|
|
|
|
var content = ToText(eventData);
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("---------事件日志开始-----------------------------------------------------------------------");
|
|
|
|
|
Console.WriteLine(content);
|
|
|
|
|
Console.WriteLine("=========事件日志结束=======================================================================");
|
|
|
|
|
Console.WriteLine();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string ToJson(EventWrittenEventArgs eventData)
|
|
|
|
|
{
|
|
|
|
|
return Newtonsoft.Json.JsonConvert.SerializeObject(eventData, Formatting.Indented);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string ToText(EventWrittenEventArgs eventData)
|
|
|
|
|
{
|
|
|
|
|
StringBuilder stringBuilder= new StringBuilder(1000);
|
|
|
|
|
|
|
|
|
|
stringBuilder.AppendLine($"[TimeStamp = { eventData.TimeStamp.ToLongDateString }]");
|
|
|
|
|
stringBuilder.AppendLine($"[OSThreadId = { eventData.OSThreadId }]");
|
|
|
|
|
stringBuilder.AppendLine($"[ActivityId = { eventData.ActivityId }]" );
|
|
|
|
|
stringBuilder.AppendLine($"[RelatedActivityId = { eventData.RelatedActivityId }],");
|
|
|
|
|
stringBuilder.AppendLine($"[Channel = { eventData.Channel }]");
|
|
|
|
|
stringBuilder.AppendLine($"[Version = { eventData.Version }]");
|
|
|
|
|
stringBuilder.AppendLine($"[Opcode = { eventData.Opcode }]");
|
|
|
|
|
stringBuilder.AppendLine($"[EventSource = { eventData.EventSource }]");
|
|
|
|
|
stringBuilder.AppendLine($"[EventId = { eventData.EventId }]");
|
|
|
|
|
stringBuilder.AppendLine($"[EventName = { eventData.EventName }]");
|
|
|
|
|
stringBuilder.AppendLine($"[Keywords = { eventData.Keywords }]");
|
|
|
|
|
stringBuilder.AppendLine($"[Level = { eventData.Level }]");
|
|
|
|
|
stringBuilder.AppendLine($"[Message = { eventData.Message }]");
|
|
|
|
|
stringBuilder.AppendLine($"[PayloadNames = { eventData.PayloadNames }]");
|
|
|
|
|
stringBuilder.AppendLine($"[Payload = { eventData.Payload }]");
|
|
|
|
|
stringBuilder.AppendLine($"[Message = { eventData.Message }]");
|
|
|
|
|
stringBuilder.AppendLine($"[Tags = { eventData.Tags },");
|
|
|
|
|
stringBuilder.AppendLine($"[Task = { eventData.Task },");
|
|
|
|
|
|
|
|
|
|
return stringBuilder.ToString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|