65.9K
CodeProject is changing. Read more.
Home

Small and easy bug report system

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (5 votes)

Jan 10, 2009

CPOL
viewsIcon

38934

downloadIcon

465

A very small and easy C# + PHP bug report system.

Code

Introduction

A small bug tracking system, easy to implement and efficient.

Background

The system uses a PHP file and a SQLite database on a remote server to read and write errors captured.

Using the Code

To send an error, you simply have to make a POST request to the file bugs.php, specifying the parameters "program", "error", and "text". For example, to send all the non captured Exceptions in a program, you could do something like this:

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    Application.ThreadException +=
      new
System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
    AppDomain.CurrentDomain.UnhandledException +=
      new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

    Application.Run(new Form1());
}

static void Application_ThreadException(object sender,
            System.Threading.ThreadExceptionEventArgs e) {
    SendException(e.Exception);
}

static void CurrentDomain_UnhandledException(object sender,
                          UnhandledExceptionEventArgs e) {
    SendException((Exception)e.ExceptionObject);
}

static void SendException(Exception error) {
    System.Net.WebClient webclient = new System.Net.WebClient();
    System.Collections.Specialized.NameValueCollection postData =
               new System.Collections.Specialized.NameValueCollection(5);

    postData.Add("program", "Example version " +
                 Application.ProductVersion);
    postData.Add("error", error.GetType().Name);
    postData.Add("text", error.ToString());

    webclient.UploadValues(new
Uri("http://www.example.com/bugs.php"), postData); }

To know the errors that have been sent, you can access them easily through any RSS reader, which allows viewing in a short time, and easily and conveniently. For example, if your PHP file is in www.example.com/bugs.php, you can add that URL to your favorite feed reader to keep informed of the errors that occurs in your application.

Update

Now you can set a password in the PHP file to prevent anyone can read the error log. Furthermore, it has functionality to delete individual records or the complete database.