By default this phase is handled by the built-in predicate
print_message_lines/3. Each line of the message is prefixed with
a string depending on the severity, and is printed to
query severity is special—no newline is printed after the
last line of the message.
This behavior can be overridden by defining the hook predicate
message_hook/3, which is called with the severity of the message,
the abstract message term and its translation to
format-command lines. It can be used to make smaller changes, for
example by calling
print_message_lines/3 with a stream
argument other than
user_error, or to implement a totally
different display method such as using dialog windows for messages.
For messages of the severity
silent the message printing phase
consists of calling the hook predicate
Even if the hook fails, no printing is done.