Example: lr_set_debug_message
Enabling full trace
In this example, the lr_set_debug_message function enables the full trace option just before a call to lrd_fetch, which the user needs to debug because it has been giving unexpected results.
The second invocation of lr_set_debug_message resets the debug level to what it was formerly, by turning off (LR_SWITCH_OFF) the Extended message level.
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_FULL_TRACE, LR_SWITCH_ON ); rc = lrd_fetch(Csr1, 1, 1, 0, PrintRow3); if (rc>2000) lr_debug_message(LR_MSG_CLASS_FULL_TRACE, "Fetch failed returned %d", rc);
/* Now reset message class to former level */ lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_FULL_TRACE, LR_SWITCH_OFF );
Disabling messages
In this example, the lr_set_debug_message function disables lr_message and lr_output_message from writing to the log unless an error occurred.
unsigned int n = lr_get_debug_message(); // get the current log level lr_output_message("The current level is %d", n); // this message is written to the log lr_set_debug_message(n, LR_SWITCH_OFF); // clear all flags lr_set_debug_message(LR_MSG_CLASS_JIT_LOG_ON_ERROR, LR_SWITCH_ON); // set the log level to JIT // After the above two calls, LR_MSG_CLASS_JIT_LOG_ON_ERROR && FFFF = LR_MSG_CLASS_JIT_LOG_ON_ERROR. lr_output_message("This output message is not written to log"); lr_message("%s", "This output message is not written to log"); // If an error is output by the product or lr_error_message is called, // recent messages that were blocked are then logged. // The recent messages are logged no matter what message level is in effect. //lr_error_message("%s", // "The messages from lr_output_message and lr_message are logged with this message.");