File Release Notes and Changelog
Release Name: V1_0_0
Notes:
The premise is pretty simple. There are 2 main interfaces developers are going to have to worry about:
1.) Logger - responsible for obviously logging stuff, really it's easier to think of it more as a dispatcher class.
2.) LoggerEventHandler (might get renamed to LogEventHandler) - responsible for the actual logging, like writting to a text file, db, etc...
The jist of it is that you can assign any number of the LoggerEventHandlers to any given log level and when a log message comes in for that level the message will get passed on to the associated LoggerEventHandlers.
Asynchronous/ Non-Blocking
The LoggerEventHandler is an asynchronous non-blocking logger. Which in simple terms means that you can throw a message to it and regardless of how long it takes to perform the "log" operation on that message (e.g. there is a wide variance between things like files and dbs for example) it will return immediately and process the request in the background. Which means your code will never stop to wait for a log event to process (and honestly why should it, that's just silly?)...
Fully Customizable
You can have n number of log levels, with m number of LoggerLevelHandlers on each level, each potentially doing something different. For example on Log levels 1-6 you might want it to log to file, but on log level 0 you might want it to send you an e-mail because something is really wrong. Either way, the developer decides the behaviour on program initilization (not the person developing the log software) so they have the flexability to do what's right for their program.
Changes: