本文主要是介绍C语言libwebsockets调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这两天用libwebsockets写了个demo,碰到点问题,发现应用层没有输出libwebsockets的调试信息。于是,查找以下文档找到解决方案:
libwebsockets: Notes about coding with lwshttps://libwebsockets.org/lws-api-doc-master/html/md_README.coding.html
需要做到两点:
编译开关
编译libwebsockets时,cmake时加上这个参数-DCMAKE_BUILD_TYPE=DEBUG:
cmake .. -DCMAKE_BUILD_TYPE=DEBUG
应用层代码
应用层调用lws_set_log_level()函数,比如:
lws_set_log_level(LLL_ERR|LLL_WARN|LLL_NOTICE|LLL_INFO|LLL_DEBUG|LLL_PARSER|LLL_HEADER|LLL_EXT|LLL_CLIENT|LLL_LATENCY|LLL_USER,
NULL);
其原型:
LWS_VISIBLE LWS_EXTERN void | lws_set_log_level (int level, lws_log_emit_t log_emit_function) |
具体参考:libwebsockets: Logginghttps://libwebsockets.org/lws-api-doc-master/html/group__log.html
第一个参数,定义log输出的级别,具体有:
#define | LLL_ERR (1 << 0) |
#define | LLL_WARN (1 << 1) |
#define | LLL_NOTICE (1 << 2) |
#define | LLL_INFO (1 << 3) |
#define | LLL_DEBUG (1 << 4) |
#define | LLL_PARSER (1 << 5) |
#define | LLL_HEADER (1 << 6) |
#define | LLL_EXT (1 << 7) |
#define | LLL_CLIENT (1 << 8) |
#define | LLL_LATENCY (1 << 9) |
#define | LLL_USER (1 << 10) |
#define | LLL_THREAD (1 << 11) |
#define | LLL_COUNT (12) /* set to count of valid flags */ |
不设置等级的话,缺省值为7,即LLL_ERR | LLL_WARN | LLL_NOTICE
第二个参数为NULL,缺省输出到stderr,可以重定向到自己的log函数中去。
最后,看下控制台输出效果:
这篇关于C语言libwebsockets调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!