This article on TSS comparing EIF and log4net basically
sums up my experience on choosing a logging framework for our products.
After evaluating EIF and log4net I initially decided on using EIF based on two main
factors (one of which turned out to be the reason why we eventually moved away from
EIF). The first reason was it more flexible (yet complex) configurable options and
second was the default support for raising WMI events.
One of our key requirements was to send out mail alerts for specific types of exceptions,
attempting to do this on EIF became a nightmare due to the complex set of xml files
that were provided for configuring it, also since it was too flexible it was easier
to shoot ourselves in the foot due the large number of categories for which events
could be raised. The other main reason was that each machine we deployed this on required
us to install the EIF Framework. This wasn’t an issue when installing on our
own servers but when we needed to deploy a product on our client servers it was an
additional step to ask clients to install this framework, I’m guessing there
was some type of merge module available to package it into the setup but I didn’t
have the luxury of having time to do it. Add another woe writing it to a file meant
I had to use a special viewer to view the log files and this was just killing. The
default viewer that came with the install couldn’t handle large files and it
was a pain to refresh the log and wait for a few minutes just to see the last two
log statements.
That was when I turned back to log4net and boy was it ever so much simpler to use.
It’s simplicity made it so much easier to use, I had less choices to make which
was ever so much better and it wrote messages to the log files in plain text. I was
able to use EmEditor to auto-refresh the file
so that new entries to the log were immediately displayed on the screen. I went back
and changed all our products to use log4net with a few search and replace and since
it was just another .dll the setup package automatically added it to the .msi. I even
wrote my very own custom Web Service Appender to log events to.
So now you know what my advice is to anyone who’s looking for a logging framework
would be.