Notifications and Errors appendix
A message logging system is most useful when its information can be relied upon and trusted. There are a number of scenarios where messages can be lost or misleadingly duplicated. Computers can crash, system resources can fail, buffers can run out of memory, hard drives can run out of space, the logging code may have bugs that affect the logging itself, etc. When exception cases like these happen it is critical that the user be notified in one fashion or another so that their impact on the log message information can be assessed. If messages can be arbitrarily lost or duplicated then it becomes impossible to trust that the events portrayed by the logging information are accurate and as such the value of that information is diminished accordingly. It is our intent to catch all of these occurrences and ultimately notify the user so that there is no ambiguity about the meaning of a message or messages. To restate, we have addressed every scenario we could foresee, including even hardware crashes, regardless of the likelihood of occurrence, and it is our belief that the immense investment in man-hours to pursue this was justified and all bases are covered. If any countering scenario is discovered then it is an oversight or bug on our part and we would greatly appreciate being notified so that we can correct the problem.
Notifications are sent out in the form of internal log messages or event log messages or both. For the most part, the application event log is used only for notifications that cannot be reliably delivered as PB messages. For instance, if a logging application fails to initialize then there is no way to generate an internal message via the message server so this type of error is directed to the event log. Also, any problems within the message server that could affect its ability to reliably deliver messages, such as a failure to save the cache file, are reported to the event log so the information is not lost. But in the latter example, a notification is also sent as an internal message for the convenience of the user. The intent is that once Paul Bunyan is properly configured, it will diagnose itself and the event log need not be monitored. See the Notifications and Errors appendix for further information.