コード例 #1
0
        /// <summary>
        /// Объединение начального текста сообщения с текстом от логируемого экземпляра
        /// </summary>
        /// <param name="baseMessage">Начальный текст сообщения</param>
        /// <param name="instance">Логируемый экземпляр</param>
        /// <param name="indent">Отступ для вложенного сообщения</param>
        /// <returns>Возвращает общее сообщение для логирования</returns>
        public string ConcatLogMessage(string baseMessage, TType instance, string indent = null)
        {
            //обединение текста исходного сообщения с данными логируемого экземпляра
            string opMessage = baseMessage;

            try
            {
                //основная логика
                var sb = new StringBuilder();
                sb.Append("Сообщение: ").AppendLine(LogMessageBuilder.GetStringLogVal(baseMessage)); //впереди добавляем сообщение
                sb.AppendLine();

                AppendSubMessage(instance, sb, indent);

                opMessage = sb.ToString();
            }
            catch (Exception ex)
            {
                m_baseLoger.Log("Возникло исключение при построении дополнительного сообщения для типа. Дополнительные данные не будут залогированы", ex
                                , new LogParameter("Логируемый тип", typeof(TType).FullName)
                                , new LogParameter("Основное сообщение", baseMessage));
            }

            return(opMessage);
        }
コード例 #2
0
ファイル: ActionLoger.cs プロジェクト: AlexKub/CarLeasing
        public void Log(string message, Exception ex, params ILogParameter[] parameters)
        {
            var logMessage = LogMessageBuilder.BuildMessage(message, ex, parameters: parameters);

            if (m_logAction != null)
            {
                m_logAction(logMessage);
            }
        }
コード例 #3
0
        public static void WriteToLog(EventLog log, string message, Exception ex, EventLogEntryType messageType, params ILogParameter[] parameters)
        {
            var logMessage = LogMessageBuilder.BuildMessage(message, ex, parameters: parameters);

            try
            {
                log.WriteEntry(logMessage, messageType);
            }
            catch { }
        }
コード例 #4
0
 /// <summary>
 /// Безопасное создание нового каталога
 /// </summary>
 /// <param name="folder">Полное имя нового каталога</param>
 protected void InitFolder(string folder)
 {
     try
     {
         if (!Directory.Exists(folder))
         {
             Directory.CreateDirectory(folder);
         }
     }
     catch (Exception ex)
     {
         m_winLoger.LogError("Возникло исключение при попытке создания каталога логирования", ex
                             , new LogParameter("Каталог", LogMessageBuilder.GetStringLogVal(folder)));
     }
 }
コード例 #5
0
        /// <summary>
        /// Логирование сообщения в указанный файл
        /// </summary>
        /// <param name="pathName">Путь к файлу</param>
        /// <param name="message">Сообщение для логирования</param>
        /// <param name="parameters">Параметры логирования</param>
        public void Log(string pathName, string message, params ILogParameter[] parameters)
        {
            try
            {
                var logMessage = LogMessageBuilder.BuildMessage(message, parameters: parameters);
                logMessage = BuildFileMessage(logMessage);

                File.AppendAllText(pathName, logMessage);
            }
            catch (Exception ex)
            {
                WindowsLoger.LogError(LogSource, "Возникло исключение при логировании в файл", ex);
                if (LogerError != null)
                {
                    LogerError(this);
                }
            }
        }
コード例 #6
0
        /// <summary>
        /// Запись информации об исключении в журнал логирования Windows
        /// </summary>
        /// <param name="message">Описание</param>
        /// <param name="ex">Экземпляр возникшего исключения</param>
        /// <param name="logName">Имя журнала логирования</param>
        /// <param name="eventType">Тип события в Журнале</param>
        /// <param name="parameters">Параметры сообщения</param>
        public void LogError(string message, Exception ex, string logName, EventLogEntryType eventType, params ILogParameter[] parameters)
        {
            var logMessage = LogMessageBuilder.BuildMessage(message, ex, parameters: parameters);

            WriteLogMessage(logName, logMessage, eventType);
        }
コード例 #7
0
        /// <summary>
        /// Запись сообщения в журнал логирования Windows
        /// </summary>
        /// <param name="message">Сообщение для записи</param>
        /// <param name="messageType">Тип сообщения</param>
        /// <param name="logName">Имя жрунала логирования</param>
        /// <param name="parameters">Параметры сообщения</param>
        public void LogMessage(string message, EventLogEntryType messageType, string logName, params ILogParameter[] parameters)
        {
            var logMessage = LogMessageBuilder.BuildMessage(message, parameters: parameters);

            WriteLogMessage(logName, logMessage, messageType);
        }
コード例 #8
0
ファイル: LogParameter.cs プロジェクト: AlexKub/CarLeasing
 public override string ToString()
 {
     return(LogMessageBuilder.DefaultAppendParameter(new StringBuilder(), this).ToString());
 }
コード例 #9
0
ファイル: LogParameter.cs プロジェクト: AlexKub/CarLeasing
 StringBuilder ILogParameter.AppendParameter(StringBuilder sb, string indent)
 {
     return(LogMessageBuilder.DefaultAppendParameter(sb, this, indent));
 }
コード例 #10
0
ファイル: LogParameter.cs プロジェクト: AlexKub/CarLeasing
 public LogParameter(string name, string value)
 {
     Name  = name;
     Value = LogMessageBuilder.GetStringLogVal(value);
 }