protected void Application_Error(object sender, EventArgs e) { var httpContext = (sender as MvcApplication).Context; var httpRequest = httpContext != null ? httpContext.Request : null; var exception = this.Server.GetLastError(); var requestUrl = httpRequest != null ? httpRequest.RawUrl : null; var clientIp = httpRequest != null ? httpRequest.ServerVariables["REMOTE_ADDR"] : null; var rawUserAgent = httpRequest != null ? httpRequest.ServerVariables["HTTP_USER_AGENT"] : null; var rawHeaders = httpRequest != null ? httpRequest.ServerVariables["ALL_RAW"] : null; var userId = UserIdentityManager.GetActiveUserId(httpRequest.Cookies); new LinqRepository().LogError(exception, DateTime.Now, requestUrl, clientIp, rawUserAgent, rawHeaders, userId); }
public static void LogErrorMessage(this IRepository repository, string message, HttpRequestBase request) { if (repository == null) { Trace.TraceError("[Logging:LogErrorMessage] Repository is null. Skipping logging."); return; } if (request == null) { const string requestIsNull = "Warning: HttpRequest is null, no context information is available. Message: "; repository.LogError(requestIsNull + message, DateTime.Now, null, null, null, null, null); return; } repository.LogError( message, DateTime.Now, request.RawUrl, request.ServerVariables["REMOTE_ADDR"], request.ServerVariables["HTTP_USER_AGENT"], request.ServerVariables["ALL_RAW"], UserIdentityManager.GetActiveUserId(request.Cookies)); }