public void Log(HttpContext context, string message, string stackTrace, EventTypes eventType) { context = context ?? HttpContext.Current; if (context == null) { return; } Task.Factory.StartNew(() => { try { var requestInfo = RequestInfo.FromHttpContext(context); _logService.LogEvent(new Model.EventLog() { EventTypeID = (byte)eventType, EventDate = DateTime.Now, UserID = requestInfo.UserID, Message = message, ErrorText = eventType == EventTypes.Error ? message : null, ServerName = requestInfo.ServerName, ServerIP = requestInfo.ServerIP, RemoteIP = requestInfo.RemoteIP, BrowserType = requestInfo.Browser, RequestMethod = requestInfo.RequestMethod, ScriptName = requestInfo.ScriptName, QueryString = requestInfo.QueryString, PostData = requestInfo.PostData, Referer = requestInfo.Referrer, StackTrace = stackTrace, Source = requestInfo.Source }); } catch (Exception ex) { LogToEventLog(message + Environment.NewLine + stackTrace); LogToEventLog(ex); } }); }