C语言libwebsockets调试
这两天用libwebsockets写了个demo,碰到点问题,发现应用层没有输出libwebsockets的调试信息。于是,查找以下文档找到解决方案:
libwebsockets: Notes about coding with lws
https://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: Logging
https://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函数中去。
最后,看下控制台输出效果:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
