我正在尝试将我的网站例外写入应用程序事件日志,我尝试了不同的方式,我看到了很多帖子,但我仍然无法做到这一点。请任何人帮助我尝试这样做。这是我的代码
public class CustomHandleErrorAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
{
// Bail if we can't do anything; app will crash.
if (filterContext == null)
return;
// since we're handling this, log to ELMAH(Error logging modules and handler)
var ex = filterContext.Exception ?? new Exception("No further information exists.");
WriteToEventLog(ex);
filterContext.ExceptionHandled = true;
var data = new ErrorPresentation
{
ErrorMessage = HttpUtility.HtmlEncode(ex.Message),
TheException = ex,
ShowMessage = filterContext.Exception != null,
ShowLink = false
};
filterContext.Result = new ViewResult
{
ViewName = "~/Views/Home/ErrorPage.aspx"
};
}
}
public void WriteToEventLog(Exception exception)
{
// todo : now I need to write this exception to Event log
String cs = "FailureAudit";
var thisMachineName = "abc";
var logName = "Application";
EventLog eventLog = new EventLog(logName, thisMachineName);
if (!EventLog.SourceExists(logName))
{
EventLog.CreateEventSource(logName, logName);
}
eventLog.Source = cs;
eventLog.EnableRaisingEvents = true;
//eventLog.WriteEntry( exception.ToString(), EventLogEntryType.Error);
eventLog.WriteEntry(exception.ToString());
}
}
答案 0 :(得分:1)
我在我的机器上运行了以下cmd(具有管理权限),我现在可以写入应用程序事件日志
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYSOURCE /D "MY-SOURCE"
感谢您的建议和意见。