Система отчетов об ошибках для .net - PullRequest
9 голосов
/ 15 декабря 2009

существует ли структура отчетов об ошибках, которую вы бы предложили для использования в .net. Мне нужны такие возможности, как отправка отчетов по электронной почте и добавление файлов в электронную почту. Пользователь должен иметь возможность добавлять информацию в отчет, а также иметь возможность удалять файлы отчетов, т. Е. Если они содержат данные, важные для конфиденциальности. Также должна быть возможность сделать автоматический скриншот. Необходимая структура также должна включать в себя руководство по сообщениям об ошибках. Это должно дать мне возможность создать собственный графический интерфейс для сообщений об ошибках.

Я уже использую log4net , но там, насколько я знаю, невозможно показать графический интерфейс для сообщения об ошибках пользователю.

Было бы неплохо, если есть какие-либо советы,

Привет, Мартин

Ответы [ 9 ]

5 голосов
/ 15 декабря 2009

Вы пробовали Эльма ? Он выполняет все элементы обработки ошибок, о которых вы говорите. Вы можете посмотреть на Trac для нужных вам битов для устранения ошибок.

Доброжелательность,

Dan

4 голосов
/ 15 мая 2012

Сверните свой собственный обработчик исключений. Используйте приведенный ниже код в своем классе program.cs. Он будет автоматически отправлять почту при возникновении исключения.

using System;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;
using System.Threading; 

namespace ExceptionHandlerTest
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.ThreadException +=
                new ThreadExceptionEventHandler(Application_ThreadException);

            // Your designer generated commands.
        }

        static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) 
        {

            var fromAddress = new MailAddress("your Gmail address", "Your name");
            var toAddress = new MailAddress("email address where you want to receive reports", "Your name");
            const string fromPassword = "your password";
            const string subject = "exception report";
            Exception exception = e.Exception;
            string body = exception.Message + "\n" + exception.Data + "\n" + exception.StackTrace + "\n" + exception.Source;

            var smtp = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
            };
            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = subject,
                Body = body
            })
            {
                //You can also use SendAsync method instead of Send so your application begin invoking instead of waiting for send mail to complete. SendAsync(MailMessage, Object) :- Sends the specified e-mail message to an SMTP server for delivery. This method does not block the calling thread and allows the caller to pass an object to the method that is invoked when the operation completes. 
                smtp.Send(message);
            }
        }
    }
}
4 голосов
/ 15 декабря 2009

Я знаком с «Блоком журналирования Microsoft Enterprise Library» и «Log4Net», и оба они соответствуют вашим требованиям (наличие нескольких прослушивателей журнала) Вот страница, которая сравнивает эти два: http://weblogs.asp.net/lorenh/archive/2005/02/18/376191.aspx

3 голосов
/ 02 августа 2010

Red Gate имеет продукт под названием SmartAssembly , который создает отчеты об ошибках. Я сам этим не пользовался, но у компании хорошая репутация.

3 голосов
/ 15 декабря 2009

Ознакомьтесь с каркасом регистрации, сделанным Объектным Парнем

1 голос
/ 15 декабря 2009

Существует Microsoft WER , однако вам необходимо зарегистрироваться на Winqual, и вашей компании необходимо иметь VeriSign ID. Слишком много хлопот для многих людей.

1 голос
/ 15 декабря 2009

Проверьте Enterprise Library , у вас есть журнал и журнал обработки исключений, полностью настраиваемый и расширяемый.

0 голосов
/ 09 февраля 2010

Вы также можете попробовать log4net . Я не уверен насчет электронной почты, хотя. Тем не менее, это расширяемое. Плюс вы можете получить исходный код!

0 голосов
/ 15 декабря 2009

Microsoft Корпоративная библиотека , последняя версия 4.1-октябрь 2008 широко используется для обработки исключений и ведения журнала среди других вещей. Есть также хороший конструктор GUI, который изменит ваш файл app.config или web.config.

...