Introduction
EZLogger
is an object that provides basic logging facilities to your application.
EZLogger
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
EZLogger
because my application's logging needs were simple and I wanted to keep my app's footprint small. I hope you find
EZLogger
useful and welcome your suggestions.
Features
EZLogger
writes log messages to a text file. The log file can be appended to, or a new one created when
EZLogger
is initialized. Log messages include a timestamp, severity and message text. Logging can be paused and resumed at any time.
EZLogger
's logging level (i.e. severities of interest) can be changed at run time to filter out unwanted messages.
EZLogger
is thread safe and can be used to log the activity of multiple threads.
EZLogger
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
You 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",
false,
logLevels);
bool bStatus = logger.Start();
logger.Info ("An informational message");
logger.Warning ("A warning");
logger.Fatal ("A fatal error has occured");
...
logger.Stop();
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
The Pause()
and Resume()
methods can be used to temporarily suspend and restart logging.
logger.Pause();
performLongBoringOperation();
logger.Resume();
The Levels
property can be set to restrict logging to message severities of interest.
logger.Levels = (uint) (EZLogger.Level.Error | EZLogger.Level.Debug);
logger.Info ("...");
logger.Error ("...");
How it works
Starting
EZLogger
causes it to maintain a reference to a
StreamWriter
. Calls to log messages invoke
StreamWriter.WriteLine()
which causes formatted text to be written (and flushed) to the log file. Messages are filtered based on the object's
LogLevel
property.
EZLogger
's methods are synchronized by marking their bodies as critical sections (using the
lock
keyword).
Revision History
- 22 Mar 2007
Added GetMessageCount()
method to retrieve the number of messages logged. Thanks to John Tibbits for the suggestion!
- 5 Dec 2006
Added explicit Resume()
method instead of overloading the behavior of Start()
.
Added ability to filter on arbitrary severity levels.
- 4 Dec 2006
Initial version.