Example: Debug Message Levels

The following example illustrates the use of the debug_message functions. The initial message level setting is lr.MSG_CLASS_BRIEF_LOG. After two calls to lr.set_debug_message, the setting is the ORed value of lr.MSG_CLASS_BRIEF_LOG, lr.MSG_CLASS_EXTENDED_LOG, and lr.MSG_CLASS_RESULT_DATA, which is 19.The values are retrieved for display with lr.get_debug_message. Then, lr.debug_message is called with several message level values to illustrate when there is output.

To help understand the example, refer to the table showing the decimal values of the message level constants and their bit masks.

Constant
Value
Mask
lr.MSG_CLASS_BRIEF_LOG
1
00001
lr.MSG_CLASS_EXTENDED_LOG
16
10000
lr.MSG_CLASS_PARAMETERS
4
00100
lr.MSG_CLASS_RESULT_DATA
2
00010
lr.MSG_CLASS_FULL_TRACE
8
01000
lr.MSG_CLASS_RESULT_DATA | lr.MSG_CLASS_FULL_TRACE
10
01010
lr.message "Initial Log level is " + CStr(lr.get_debug_message)


' Initial Log level is 1
lr.set_debug_message lr.MSG_CLASS_EXTENDED_LOG, 1
lr.message "Extended Log level is " + CStr(lr.get_debug_message)

' Extended Log level is 17
lr.set_debug_message lr.MSG_CLASS_EXTENDED_LOG Or lr.MSG_CLASS_RESULT_DATA , 1

lr.message "Extended with Results Log level is " + CStr(lr.get_debug_message)

'Extended with Results Log level is 19
' Call to any function or API 
' emulated with random number. 
' Return code over 2000 means the call failed.

Randomize
rc = Rnd * 4000
lr.message "Return code = " + Cstr(rc)
' Return code = 3713.669

if (rc>2000) then
lr.debug_message lr.MSG_CLASS_BRIEF_LOG , _
	"Operation failed with basic logging."

' Output: Operation failed with basic logging.

lr.debug_message lr.MSG_CLASS_EXTENDED_LOG, _
	"Operation failed with extended logging."

' Output: Operation failed with extended logging.

lr.debug_message lr.MSG_CLASS_PARAMETERS , _
	"Operation failed with parameter substitution logging."

' --- No output.

`lr.MSG_CLASS_PARAMETERS AND Current level:
` 00100 AND 10011 = 0

lr.debug_message lr.MSG_CLASS_RESULT_DATA , _
	"Operation failed with result data logging."

' Output: Operation failed with result data logging.

lr.debug_message lr.MSG_CLASS_FULL_TRACE , _
	"Operation failed with full trace logging."

' --- No output
`lr.MSG_CLASS_FULL_TRACE AND Current level:
`01000 AND 10011 = 0

lr.debug_message lr.MSG_CLASS_RESULT_DATA Or _
	 lr.MSG_CLASS_FULL_TRACE , _
	"Operation failed with either result data or full trace logging."

' Output: Operation failed with either result data or full trace logging.
` Full trace is not active, but Result data is, so this call outputs 
` the message
end if