我想实现一个websocket客户端(在C中libwebsockets)。我使用cmake来控制软件编译过程。如何使用Libwebsockets启用调试日志记录?
我的问题很简单:如何使用Libwebsockets启用调试日志记录?
首先我编译和喜欢它的文档注中说,安装libwebsockets关于建立LWS:
要建立与调试信息和_DEBUG用于编译优先级较低的调试消息 ,使用
$ cmake的.. -DCMAKE_BUILD_TYPE = DEBUG
从Libwebsock ETS 2.1文档有关与LWS (https://libwebsockets.org/lws-api-doc-master/html/md_README.coding.html)编码注:
调试日志
而且使用lws_set_log_level API,您可以提供一个自定义的回调 实际发出的日志字符串。默认情况下,这指向发送到stderr的内部 emit函数。将其设置为NULL会使其保留为 。
帮助函数lwsl_emit_syslog()从库中导出到 简化了对syslog的记录。您仍然需要在用户代码中使用setlogmask,openlog 和closelog。
日志apis可用于用户代码。
lwsl_err(...)lwsl_warn(...)lwsl_notice(...)lwsl_info(...) lwsl_debug(...)的通知和信息之间的区别是,通知 会被默认记录而信息在默认情况下被忽略。
如果你不定义_DEBUG,即在建筑,没有这个
$ cmake的.. -DCMAKE_BUILD_TYPE =然后调试日志下面通知水平并没有 真正得到编译英寸
像this (official) example,我把lws_set_log_level(10, NULL);
放在我的websocket主函数的开头。
的CMakeLists.txt:
cmake_minimum_required(VERSION 3.6)
project(foo)
set(CMAKE_C_STANDARD 11)
set(CMAKE_BUILD_TYPE DEBUG) #For CLion IDE but i'm pretty sur it does nothing.
set(SOURCE_FILES
websocket.c
websocket.h
main.c)
add_executable(foo ${SOURCE_FILES})
target_link_libraries(foo websockets)
然后我运行cmake:
cmake .. -DCMAKE_BUILD_TYPE=DEBUG
make
一切正常,我的WebSocket客户端似乎确定。
但我没有调试日志...我错过了什么?