Esempio n. 1
0
        /// <summary>
        /// Получение строки с расширенными деталями цепочки исключений (доп. информация, SQL данные)
        /// </summary>
        /// <returns>дополнительная отладочная информация</returns>
        public string GetExtendedDetails()
        {
            string res = "";

            Exception ex = this;

            while (ex != null)
            {
                res += ex.GetType().FullName + ": " + ex.Message + "\n";
                if (ex.StackTrace != null)
                {
                    res += "\tStack Trace:\n" + ex.StackTrace + "\n";
                }

                if (ex is DetailedException)
                {
                    if ((ex as DetailedException).Details.Length > 0)
                    {
                        res += "\tDetails:\n" + LogModule.ClearPassword((ex as DetailedException).Details) + "\n";
                    }

                    if ((ex as DetailedException).SqlCmd != null)
                    {
                        res += "\tSql Command:\n" + (ex as DetailedException).SqlCmd.CommandText + "\n";
                        res += "\tSql Connection:\n" + LogModule.ClearPassword((ex as DetailedException).SqlCmd.Connection.ConnectionString) + "\n";
                        res += "\tSql Timeout:\n" + (ex as DetailedException).SqlCmd.CommandTimeout + " сек.\n";

                        string sParams = "";
                        foreach (SqlParameter p in (ex as DetailedException).SqlCmd.Parameters)
                        {
                            sParams += String.Format("{0}='{1}';\n", p.ParameterName, p.Value);
                        }

                        if (sParams.Trim().Length > 0)
                        {
                            res += "\tSql Params:\n" + sParams + "\n";
                        }
                    }
                }

                res += "\n";
                ex   = ex.InnerException;
            }

            return(res);
        }
Esempio n. 2
0
        /// <summary>
        /// Инициализация статического модуля обработки ошибок приложения
        /// </summary>
        /// <param name="logModule">уже проинициализированный объект</param>
        /// <param name="userName">Для Web указать "All"</param>
        /// <param name="appName">Наименование приложения. Указать римя приложения или "Application"</param>
        /// <param name="switchOnLocalLogger">Включить локальное логирование</param>
        public static void Init(LogModule logModule, string userName = "******", string appName = "Application", bool switchOnLocalLogger = false)
        {
            lock (Sync)
            {
                LogModule oldLog = _log;
                _log = logModule;
                if (oldLog != null && oldLog is IDisposable)
                {
                    (oldLog as IDisposable).Dispose();
                }

                if (switchOnLocalLogger)
                {
                    var localLogger = LoggerFactory.GetLocalLogger(appName, userName);

                    if (localLogger != null)
                    {
                        _localLogger = localLogger;
                    }
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="log">Текущий log-модуль</param>
 /// <param name="subject">Тема письма</param>
 /// <param name="xml">XML с информацией по ошибке</param>
 public TaskMailSend(LogModule log, string subject, XmlElement xml)
 {
     _log     = log;
     _subject = subject;
     _xml     = xml;
 }
Esempio n. 4
0
 /// <summary>
 /// Инициализация статического модуля обработки ошибок приложения
 /// </summary>
 /// <param name="logModule">уже проинициализированный объект</param>
 /// <param name="appName"></param>
 /// <param name="switchOnLocalLogger">Включить локальное логирование</param>
 public static void Init(LogModule logModule, string appName = "Application", bool switchOnLocalLogger = false)
 {
     Init(logModule, null, appName, switchOnLocalLogger);
 }
Esempio n. 5
0
 /// <summary>
 /// Инициализация статического модуля обработки ошибок приложения
 /// </summary>
 /// <param name="logModule">уже проинициализированный объект</param>
 public static void InitVB(LogModule logModule)
 {
     Init(logModule, null, "Application");
 }