Node:Message Processing, Next:, Up:Messages and Queries

Message Processing

Every message issued by the Prolog system is displayed using a single predicate:

print_message(+Severity, +Message)

Message is a term that encodes the message to be printed. The format of message terms is subject to change, but can be inspected in the file library('SU_messages') of the SICStus Prolog distribution.

The atom Severity specifies the type (or importance) of the message. The following table lists the severities known to the SICStus Prolog system, together with the line prefixes used in displaying messages of the given severity:

error '! ' for error messages
warning '* ' for warning messages
informational '% ' for informational messages
help '' for help messages
query '' for query texts (see Query Processing)
silent '' a special kind of message, which normally does not produce any output, but can be intercepted by hooks

print_message/2 is a built-in predicate, so that users can invoke it to have their own messages processed in the same way as the system messages.

The processing and printing of the messages is highly customizable. For example, this allows the user to change the language of the messages, or to make them appear in dialog windows rather than on the terminal.