The log levels are defined below:

  • \begin\item[FATAL]: Indicates a serious internal error. A FATAL error is raised only in circumstances where continued execution of the entire application is in question. Unless otherwise handled by an application code, a FATAL exception in any thread will cause the entire program to exit.

  • \item[ERROR]: A serious error that indicates that a requested function cannot be accomplished. However, the application itself will normally be expected to continue. Unless otherwise handled by the application code, an ERROR exception in any thread causes that thread, but not the program as a whole, to exit.

  • \item[WARNING]: Indicates that something unexpected happened. While the requested function was completed, it may not have been completed exactly as expected. Unhandled exceptions of this and lesser priority are logged but do not necessarily cause a thread to exit.

  • \item[NOTICE]: Indicates that something unexpected happened that should be logged, but is not expected to interfere with normal functioning.

  • \item[DEBUG]: A catch-all for debugging code.

  • \end: Despite these intended meanings, an application may catch even a FATAL exception that it knows how to recover from and continue operation.

    There are a few exceptions to these definitions. For example, login failures are logged at FATAL level since they are considered important, even though they are completely recoverable as far as the application itself is concerned. There is an additional standard option, --tracelevel. An exception at this level or above causes a stack trace to be printed to the log file. This log tells you exactly where the exception was thrown, which may be more important that where it was caught and logged. By default, --tracelevel is set to Fatal.