/// <summary> /// Запись информации о исключении в лог /// </summary> /// <param name="message">Событие</param> /// <param name="eventID">Код события</param> /// <param name="eventCategory">Категория события</param> /// <param name="e">Исключение</param> public static void WriteError( string message, EventLogerID eventID, EventLogerCategory eventCategory, Exception e ) { Write(message, EventLogerType.Error, (int)eventID, eventCategory, e); }
/// <summary> /// Запись информации с типом ошибка в системный лог /// </summary> /// <param name="message">Событие</param> /// <param name="eventID">Код события</param> /// <param name="eventCategory">Категория события</param> public static void WriteError( string message, EventLogerID eventID, EventLogerCategory eventCategory ) { WriteToLog(message, EventLogerType.Error, eventID, eventCategory); }
/// <summary> /// Запись события в системный лог /// </summary> /// <param name="message">Событие</param> /// <param name="eventType">Тип события</param> /// <param name="eventID">Код события</param> /// <param name="eventCategory">Категория события</param> /// <param name="exc">Исключение</param> private static void Write( string message, EventLogerType eventType, int eventID, EventLogerCategory eventCategory, Exception exc, params Object[] p ) { if ( !_isWork ) return; StringBuilder finalMessage = new StringBuilder(); finalMessage.AppendLine( message ); finalMessage.AppendLine( "------------------------------------------------------------------------" ); //Пытаемся получить SiteContext, так как HttpContext.Current.Items не всегда есть в сборке SiteContext vSiteContext = null; var contextExist = true; try { vSiteContext = SiteContext.Current; } catch { contextExist = false; } if (vSiteContext == null) { if (contextExist) finalMessage.AppendLine( "Профиль не заполнен!" ); } else if ( SiteContext.Current.IsAnonymous ) { finalMessage.AppendLine( "Пользователь не авторизован." ); } else { finalMessage.AppendLine( "Пользователь: " + SiteContext.Current.User.UserId.ToString() + " - " + SiteContext.Current.UserDisplayName ); } try { finalMessage.AppendLine("URL: " + HttpContext.Current.Request.RawUrl); finalMessage.AppendLine("ContentType: " + HttpContext.Current.Request.ContentType); finalMessage.AppendLine("HttpMethod: " + HttpContext.Current.Request.HttpMethod); finalMessage.AppendLine("Browser: " + HttpContext.Current.Request.UserAgent); finalMessage.AppendLine("Url: " + HttpContext.Current.Request.Url); finalMessage.AppendLine("UrlReferrer: " + HttpContext.Current.Request.UrlReferrer); finalMessage.AppendLine("UserHostAddress: " + HttpContext.Current.Request.UserHostAddress); finalMessage.AppendLine("UserHostName: " + HttpContext.Current.Request.UserHostName); } catch (Exception) { //Данный try catch развернут т.к. когда объект Request не существует его нельзя проверить на = null } if ( exc != null ) { finalMessage.AppendLine(ExceptionToString(exc, false)); } StackTrace st = new StackTrace( true ); if (exc == null && p.Length == 0) { finalMessage.AppendLine( "------------------------------------------------------------------------" ); finalMessage.AppendLine("Final stack trace:"); finalMessage.AppendLine(st.ToString()); } eventLog[!SiteContext.isFranchNameAttached() ?ConfigurationManager.AppSettings["InternalFranchName"] : SiteContext._internalFranchName].WriteEntry(finalMessage.ToString(), ConvertType( eventType ), Convert.ToInt32( eventID ), Convert.ToInt16( eventCategory ) ); }
/// <summary> /// Запись информации с типом предупреждение в системный лог /// </summary> /// <param name="message">Событие</param> /// <param name="eventID">Код события</param> /// <param name="eventCategory">Категория события</param> public static void WriteWarning( string message, EventLogerID eventID, EventLogerCategory eventCategory ) { WriteToLog( message, EventLogerType.Warning, eventID, eventCategory ); }
/// <summary> /// Запись события в системный лог /// </summary> /// <param name="message">Событие</param> /// <param name="eventType">Тип события</param> /// <param name="eventID">Код события</param> /// <param name="eventCategory">Категория события</param> public static void WriteToLog( string message, EventLogerType eventType, EventLogerID eventID, EventLogerCategory eventCategory, params Object[] p ) { Write( message, eventType, (int)eventID, eventCategory, null, p); }
/// <summary> /// Запись информации с типом информация в системный лог /// </summary> /// <param name="message">Событие</param> /// <param name="eventID">Код события</param> /// <param name="eventCategory">Категория события</param> /// <param name="eventCategory">Выдавать ли стектрейс</param> public static void WriteInformation(string message, EventLogerID eventID, EventLogerCategory eventCategory, params Object[] p) { WriteToLog(message, EventLogerType.Information, eventID, eventCategory, p); }