is an object that provides basic logging facilities to your application.
is a lightweight alternative to more feature-rich logging subsystems such as Log4Net
and XQuiSoft Logging
, both of which are excellent logging mechanisms. I wrote
because my application's logging needs were simple and I wanted to keep my app's footprint small. I hope you find
useful and welcome your suggestions.
writes log messages to a text file. The log file can be appended to, or a new one created when
is initialized. Log messages include a timestamp, severity and message text. Logging can be paused and resumed at any time.
's logging level (i.e. severities of interest) can be changed at run time to filter out unwanted messages.
is thread safe and can be used to log the activity of multiple threads.
supports any combination of these severity levels:
Debug - trace and debug messages
Info - informational messages
Success - success messages
Warning - warnings
Error - error messages
Fatal - fatal errors
All - all messages
How to use EZLogger
by creating a new instance, starting the logger, and calling one of the various logging methods. When you're done using the logger, you stop it as shown below.
uint logLevels = (uint) EZLogger.Level.All;
EZLogger logger =
new EZLogger ("C:\\EZLoggerTester.log",
bool bStatus = logger.Start();
logger.Info ("An informational message");
logger.Warning ("A warning");
logger.Fatal ("A fatal error has occured");
This code fragment produces the following log file.
12/4/2006 4:38:26 PM I: An informational message
12/4/2006 4:38:26 PM W: A warning
12/4/2006 4:38:26 PM F: A fatal error has occur
Resume() methods can be used to temporarily suspend and restart logging.
Levels property can be set to restrict logging to message severities of interest.
logger.Levels = (uint) (EZLogger.Level.Error | EZLogger.Level.Debug);
How it works
causes it to maintain a reference to a
. Calls to log messages invoke
which causes formatted text to be written (and flushed) to the log file. Messages are filtered based on the object's
's methods are synchronized by marking their bodies as critical sections (using the
- 22 Mar 2007
GetMessageCount() method to retrieve the number of messages logged. Thanks to John Tibbits for the suggestion!
- 5 Dec 2006
Resume() method instead of overloading the behavior of
Added ability to filter on arbitrary severity levels.
- 4 Dec 2006