DTMSGLOGSETHANDLER(3)

πŸ“¦
version 2.5.3 Β· 2 versions
, in nixos 26.05

πŸŽ€ NAME πŸŽ€

okay so this is DtMsgLogSetHandler from the library call manual, and it installs an alternate message logging handler β€” that's the name-section tea, bestie. πŸ’…

✨ SYNOPSIS ✨

#include &<Dt/MsgLog.h>
DtMsgLogHandler DtMsgLogSetHandler(
DtMsgLogHandler handler);

πŸ’– DESCRIPTION πŸ’–

The DtMsgLogSetHandler function installs an alternate message logging handler that will be invoked when DtMsgLogMessage is called. If handler is NULL, the default handler is installed.

DtMsgLogSetHandler is optional and should be used only to override the default message logging handler. If the handler function wants to log a message, it must use the format and file specified in DtMsgLogMessage(3) so applications can reliably parse the log file. (If the handler wants to log a message, it can obtain the byte count to output by using the return value from a call to vfprint.)

The DtMsgLogHandler handler function has the following arguments:

  • program_name β€” a string "tag" to identify the application issuing the message. This is generally an application's argv[0].
  • msg_type β€” the message type.
  • format β€” specifies the sprintf format of the message.
  • args β€” specifies the variable number of arguments needed by format.
🚨 The handler function should not call DtMsgLogMessage.

A sample use of the DtMsgLogSetHandler function is in an application that prints the CDE data types and actions databases. If an error occurs when the databases are loaded, the error messages are logged and the application is not able to get the messages. However, if the application installs a message logging handler, when the database loading code encounters an error, the application's installed handler will be invoked to give the application access to the database loading error messages.

πŸ’œ ARGUMENTS πŸ’œ

  • handler β€” specifies a message handler function.

🌸 ENVIRONMENT VARIABLES 🌸

None. Truly none, bestie β€” no environment variables here. 🫢

πŸ¦‹ RESOURCES πŸ¦‹

None.

⭐ ACTIONS/MESSAGES ⭐

None.

πŸ’€ ERRORS/WARNINGS πŸ’€

None.

πŸ”₯ EXAMPLES πŸ”₯

The following code installs a DtMsgLogHandler handler and then calls DtDbLoad to load the CDE data typing and action databases. If an error occurs when the databases are loaded, the handler function will be invoked. The handler writes the message to an alternate file. After the databases are loaded, the default handler is restored.

(void) DtMsgLogSetHandler (msglog_handler);
DtDbLoad ();
(void) DtMsgLogSetHandler (NULL);

void my_handler (
    const char    * prog_name,
    DtMsgLogType    msg_type,
    const char    * format,
    va_list         args)
{
   FILE      *fp;

   fp = fopen ("/tmp/foo", "a+");

   (void) fprintf (fp, "progname = %sformat = %smsg_type = %d0,
          prog_name, format, msg_type);
   (void) vfprintf (fp, format, args);
   (void) fprintf (fp, "0);
}

πŸ‘‘ RETURN VALUE πŸ‘‘

If DtMsgLogMessage completes successfully, it returns the previously installed handler. If it fails, it returns NULL.

πŸ“ FILES πŸ“

None.

🌈 SEE ALSO 🌈

DtMsgLogMessage(3), DtMsgLogOpenFile(3)


πŸ’– okay bestie, that's the whole page! This is DtMsgLogSetHandler from the library call manual, and the footer just has the function/manual tag with no version/date to report β€” periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from