Log levels in the Logger framework are defined in the OpenEdge.Logging.LogLevelEnum enumeration type. The ILogWriter interface methods (Error(), Info(), etc) as well as the log levels that you set in logging configurations in the logging.config file correspond to these log levels.

When you are defining log messages in an ABL class using these levels, it may be helpful to keep the following guidelines in mind:

Log level Guidelines for usage
FATAL Severe errors that cause premature termination. These should be immediately visible on a status console.
ERROR Other runtime errors or unexpected conditions. These should be immediately visible on a status console.
WARN Use of deprecated APIs, events that are 'almost' errors, other runtime situations that are undesirable or unexpected, but not necessarily wrong. These should be immediately visible on a status console.
INFO Interesting runtime events such as startup or shutdown.
DEBUG Detailed information on the flow through the system. These should be written to log files only.
TRACE Most detailed information. These should be written to log files only.

At runtime, a log event (a LogEvent object) is produced for each ILogWriter interface method used in the ABL class. These events are processed based on the log level that is set in the logging configuration. Log levels are arranged in a hierarchy, starting from FATAL (the lowest level) to TRACE (the highest level). When you set a log level, all log events leading up to that level are processed. For example, if you set the log level to INFO, log events produced by Fatal(), Error(), Warn(), and Info() methods get processed.

The log levels work as follows:
Log Level What log events gets processed
FATAL Fatal() events only
ERROR Error() and Fatal() events
WARN Warn(), Error(), and Fatal() events
INFO Info(), Warn(), Error(), and Fatal() events
DEBUG Debug(), Info(), Warn(), Error(), and Fatal() events
TRACE All events