fmtmsg

Synopsis

Description

Based on a message's classification component, the fmtmsg utility either writes a
formatted message to stderr or writes a formatted message to the console.

A formatted message consists of up to five standard components (see environment
variable MSGVERB in the ENVIRONMENT VARIABLES section of this page). The classification
and subclass components are not displayed as part of the standard message,
but rather define the source of the message and direct the display
of the formatted message.

Options

The following options are supported:

-cclass

Describes the source of the message. Valid keywords are:

hard

The source of the condition is hardware.

soft

The source of the condition is software.

firm

The source of the condition is firmware.

-usubclass

A list of keywords (separated by commas) that further defines the message and directs the display of the message. Valid keywords are:

appl

The condition originated in an application. This keyword should not be used in combination with either util or opsys.

util

The condition originated in a utility. This keyword should not be used in combination with either appl or opsys.

opsys

The message originated in the kernel. This keyword should not be used in combination with either appl or util.

recov

The application will recover from the condition. This keyword should not be used in combination with nrecov.

nrecov

The application will not recover from the condition. This keyword should not be used in combination with recov.

print

Print the message to the standard error stream stderr.

console

Write the message to the system console. print, console, or both may be used.

-llabel

Identifies the source of the message.

-sseverity

Indicates the seriousness of the error. The keywords and definitions of the standard levels of severity are:

halt

The application has encountered a severe fault and is halting.

error

The application has detected a fault.

warn

The application has detected a condition that is out of the ordinary and might be a problem.

info

The application is providing information about a condition that is not in error.

-ttag

The string containing an identifier for the message.

-aaction

A text string describing the first step in the error recovery process. This string must be written so that the entire action argument is interpreted as a single argument. fmtmsg precedes each action string with the TO FIX: prefix.

text

A text string describing the condition. Must be written so that the entire text argument is interpreted as a single argument.

Examples

Example 1 Standard message format

The following example of fmtmsg produces a complete message in the standard
message format and displays it to the standard error stream.

Environment Variables

The environment variables MSGVERB and SEV_LEVEL control the behavior of fmtmsg. MSGVERB
is set by the administrator in the /etc/profile for the system. Users
can override the value of MSGVERB set by the system by resetting
MSGVERB in their own .profile files or by changing the value in
their current shell session. SEV_LEVEL can be used in shell scripts.

MSGVERB tells fmtmsg which message components to select when writing messages to
stderr. The value of MSGVERB is a colon-separated list of optional keywords.
MSGVERB can be set as follows:

MSGVERB=[keyword[:keyword[:...]]] export MSGVERB

Valid keywords are: label, severity, text, action, and tag. If MSGVERB contains
a keyword for a component and the component's value is not the
component's null value, fmtmsg includes that component in the message when writing
the message to stderr. If MSGVERB does not include a keyword for
a message component, that component is not included in the display of the
message. The keywords may appear in any order. If MSGVERB is not
defined, if its value is the null string, if its value is
not of the correct format, or if it contains keywords other than
the valid ones listed above, fmtmsg selects all components.

MSGVERB affects only which message components are selected for display. All message
components are included in console messages.

SEV_LEVEL defines severity levels and associates print strings with them for use
by fmtmsg. The standard severity levels shown below cannot be modified. Additional
severity levels can be defined, redefined, and removed.

0

(no severity is used)

1

HALT

2

ERROR

3

WARNING

4

INFO

SEV_LEVEL is set as follows:

description is a comma-separated list containing three fields:

SEV_LEVEL= [description[:description[:...]]] export SEV_LEVEL

description=severity_keyword, level, printstring

severity_keyword is a character string used as the keyword with the -sseverity option to fmtmsg.

level is a character string that evaluates to a positive integer (other
than 0, 1, 2, 3, or 4, which are reserved for the
standard severity levels). If the keyword severity_keyword is used, level is the
severity value passed on to fmtmsg(3C).

printstring is the character string used by fmtmsg in the standard message
format whenever the severity value level is used.

If SEV_LEVEL is not defined, or if its value is null, no
severity levels other than the defaults are available. If a description in
the colon separated list is not a comma separated list containing three
fields, or if the second field of a comma separated list does
not evaluate to a positive integer, that description in the colon separated
list is ignored.

Exit Status

The following exit values are returned:

0

All the requested functions were executed successfully.

1

The command contains a syntax error, an invalid option, or an invalid argument to an option.

2

The function executed with partial success, however the message was not displayed on stderr.

4

The function executed with partial success; however, the message was not displayed on the system console.