Main Site Documentation

Generic ExceptionLogger Class


#1

Hello guys,
Since the Code contribution is currently disabled and in order for the following Code not to get lost i posted it to the WiKi…
the link:
http://wiki.tinyclr.com/index.php?title=User:Jay_Jay

This is a generic Exception Logger class which would allow you to log all of your program exception errors to your choice of destination be it (a TextFile, WebSite, Email and so on…)

usage is very simple:


private static readonly ExceptionLogger Logger = new ExceptionLogger();
        private void ProgramStarted()
        {
//add a Text Logger.. logs errors to a text file
            Logger.AddLogger(new TextFileExceptionHandler() { FileName = @ "\USB\BugReport.txt" });
//add a web site logger, posts error to a website.
Logger.AddLogger(new WebSiteExceptionHandler(){QueryString="bug",Url="http://www.myDomain.com/bugreport.aspx?"});
//send errors to an email...
Logger.AddLogger(new EmailExceptionHandler(){EmailFrom="myName@ mycomain.com",EmailTo="mybugEmail@ myDomain.com", EmailServer="smtp.myDomain.com"});



//now let's cause an exception:
         try
            {
                throw new ArgumentException("test");
            }
            catch (Exception e)
            {
                Logger.LogException(e, Assembly.GetExecutingAssembly());

            }
}


You can very easily extending… by adding your classes to log errors your ways… you can log the error to multiple destination as shown in the above example or to to a single destination.

What is missing:
unfortunately netmf doesn’t offer an general exception event that one could hook to… if this was offered it would have made this class even better where it would catch any exception the system may generate without having to wrap it in try {}catch… and calling it the log.exception method… we’ll see what 4.2 brings…

Oh yah please feel free to edit the wiki and extend the code with new loggers if you create one.

i hope you like it.
Please give your feedback.

Jay.


#2

Download Gadgeteer demo project from here:
http://wiki.tinyclr.com/images/1/19/Exception_Logger.zip

Enjoy!!!


#3

Got it. Thanks.


#4

You’re welcome ;), i hope you find it useful.