写入应用程序事件日志

时间:2013-01-22 14:10:34

标签: c#

enter image description here我正在尝试将我的网站例外写入应用程序事件日志,我尝试了不同的方式,我看到了很多帖子,但我仍然无法做到这一点。请任何人帮助我尝试这样做。这是我的代码

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());

    }
}

1 个答案:

答案 0 :(得分:1)

我在我的机器上运行了以下cmd(具有管理权限),我现在可以写入应用程序事件日志

eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYSOURCE /D "MY-SOURCE"

感谢您的建议和意见。