/// <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); }
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); } }
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 { } }
/// <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))); } }
/// <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); } } }
/// <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); }
/// <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); }
public override string ToString() { return(LogMessageBuilder.DefaultAppendParameter(new StringBuilder(), this).ToString()); }
StringBuilder ILogParameter.AppendParameter(StringBuilder sb, string indent) { return(LogMessageBuilder.DefaultAppendParameter(sb, this, indent)); }
public LogParameter(string name, string value) { Name = name; Value = LogMessageBuilder.GetStringLogVal(value); }