示例#1
0
        /// <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 ) );
        }
示例#2
0
 /// <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);
 }
示例#3
0
 private static EventLogEntryType ConvertType( EventLogerType eventType )
 {
     switch ( eventType )
     {
         case EventLogerType.Information: return EventLogEntryType.Information;
         case EventLogerType.Warning: return EventLogEntryType.Warning;
         case EventLogerType.Error: return EventLogEntryType.Error;
         default: return EventLogEntryType.Information;
     }
 }
示例#4
0
 /// <summary>
 /// Запись события в системный лог с не известной категорией
 /// </summary>
 /// <param name="message">Событие</param>
 /// <param name="eventType">Тип события</param>
 /// <param name="eventID">Код события</param>
 public static void WriteToLog( string message, EventLogerType eventType, EventLogerID eventID )
 {
     WriteToLog( message, eventType, eventID, EventLogerCategory.UnknownCategory );
 }