> I think this is way too many levels. Why not just define few levels (around > three) and let the user define new levels when needed.
I agree this is too many level, though I think letting the user define their own levels is a needless complication. >From experience, I would recommend: - CRIT - the application cannot continue - ERROR - the application cannot carry out the requested task - WARN - the requested task cannot be completed normally, but we can work around it - INFO - FYI. Things sysadmins would like to know. - DEBUG - For developers debugging. - TRACE (maybe) - also sometimes called fine or verbose - for developers debugging. If an application needs separate channels of logging, I would using a separate logger instance for different logging categories.