lr_set_debug_message()函数的使用
简介:
lr_set_debug_mssage()函数可以作为脚本中日志输出的开关,其作用如同Runtime Setting -> log中的设置一样,如果Runtime setting中取消勾选Enable log,而在脚本调试的过程中需要查看日志输出就可以使用lr_set_debug_mssage()函数。
该函数使用起来比Runtime Setting要灵活,他可以根据需要设置应该输出哪些代码段的日志,而不是像Runtime Setting一样,只要设置了就会输出整个脚本的日志,不管这些日志对用户来说是否有用。如果把这两种设置方式比作变量的话,Runtime Setting就是一个全局变量,在整个脚本中有效,而lr_set_debug_message()函数则属于局部变量,只在当前脚本中有效。
比如说脚本中有一个登录一个退出函数,我只想在脚本调试过程中查看登录的日志,那么就可以实现这样的设置:lr_set_debug_mssage(开) -登录- lr_set_debug_mssage(关),如此以来,就可以只针对性的查看“登录”的日志了。
函数介绍:
intlr_set_debug_message(unsigned intmessage_level, unsigned inton_off);
message_level有如下几种形式
1、标准日志(Brief):LR_MSG_CLASS_BRIEF_LOG
2、扩展日志(Extended Log):LR_MSG_CLASS_EXTENDED_LOG
扩展日志中还包括几个小项
服务器返回值(Result Data):LR_MSG_CLASS_RESULT_DATA
参数替换(Parameter Substitution):LR_MSG_CLASS_PARAMETERS
高级输出(Full Run-Time Trace) :LR_MSG_CLASS_FULL_TRACE
3、另外还有一种情况就是仅当在出错的时候输出:
LR_MSG_CLASS_JIT_LOG_ON_ERROR
on_off有2种形式:
LR_SWITCH_ON和LR_SWITCH_OFF
由上可知lr_set_debug_message()函数使用大致如下
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG| LR_MSG_CLASS_PARAMETERS,LR_SWITCH_ON);
… …
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG| LR_MSG_CLASS_PARAMETERS,LR_SWITCH_OFF);
示例:
/*********************************************************
本示例主要是关于lr_set_debug_message()函数的使用
如果关闭了Runtime setting中的Log输出,
但是在脚本中设置了lr_set_debug_message()开关,
脚本调试过程中仍然能够输出调试日志
注:运行该脚本前请取消勾选Runtime setting->Log中的Enable Log
*********************************************************/
Action()
{
char str[10] = "tester";
lr_output_message("*****开启日志保存前%s*****",str);
//开启日志输出
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG|LR_MSG_CLASS_PARAMETERS |LR_MSG_CLASS_RESULT_DATA|LR_MSG_CLASS_FULL_TRACE ,LR_SWITCH_ON);
//设置一个开始日志输出的flag
lr_debug_message(LR_MSG_CLASS_PARAMETERS |LR_MSG_CLASS_RESULT_DATA |LR_MSG_CLASS_FULL_TRACE ,"*****开始标志****");
lr_save_string("good",str);
//设置一个结束日志输出的flag
lr_debug_message(LR_MSG_CLASS_PARAMETERS |LR_MSG_CLASS_RESULT_DATA |LR_MSG_CLASS_FULL_TRACE ," *****结束标志****");
//关闭日志输出
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG|LR_MSG_CLASS_PARAMETERS |LR_MSG_CLASS_RESULT_DATA|LR_MSG_CLASS_FULL_TRACE ,LR_SWITCH_ON);
lr_output_message("*****开启日志保存后%s*****",str);
return 0;
}
该实例中还使用了一个lr_debug_message()函数,该函数的第一个参数与lr_set_debug_message()函数中的参数相同。
运行结果:
Action.c(12): *****开启日志保存前tester*****
*****开始标志****
Action.c(20): Notify: Saving Parameter "tester = good"
*****结束标志****
Action.c(29): *****开启日志保存后tester*****
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.