using Wood.Entity.SystemManage;
using Wood.Util;
namespace Wood.EventBus.Events
{
public class LogExceptionEvent : IntegrationEvent
{
public LogExceptionEvent(object? payload)
{
Payload = payload;
}
public static LogExceptionEvent NewEvent()
{
LogExceptionEntity entity = new LogExceptionEntity();
entity.LogDateTime = DateTime.Now;
return new LogExceptionEvent(entity);
}
public static LogExceptionEvent NewEvent(Exception ex)
{
LogExceptionEntity entity = new LogExceptionEntity();
entity.LogDateTime = DateTime.Now;
entity.ExceptionStackTrace = ex.StackTrace;
entity.Exception = ex.Message;
entity.Message = ex.GetFullExceptionMessage();
return new LogExceptionEvent(entity);
}
///
/// 发布错误日志事件
///
/// 错误信息
/// 来源url 或者 jobid
/// 来源controller 或者 job class name
/// 来源action 或者 job method name
public static LogExceptionEvent NewEvent(Exception ex, string requestUrl, string controller, string action)
{
LogExceptionEntity entity = new LogExceptionEntity();
entity.LogDateTime = DateTime.Now;
entity.ExceptionStackTrace = ex.StackTrace;
entity.Exception = ex.Message;
entity.Message = ex.GetFullExceptionMessage();
entity.ControllerName = controller;
entity.ActionName = action;
entity.RequestUrl = requestUrl;
return new LogExceptionEvent(entity);
}
}
}