(Not sure where to place this comment)

Given there's an error handler callback which makes sense due to the multi-threaded nature of how logging errors will be discovered, I would suggest creating a safe way to determine the error (as opposed to parsing a string). For example, the error that fails to create a new log file is pretty important to deal with (I'm assuming the others are less-so) and the application `errHandler` would have to parse a string to determine what the error is. If the string changes, existing `errHandlers` will break.