我想實現一個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客戶端似乎確定。
但我沒有調試日誌...我錯過了什麼?