Ich versuche, einen Websocket-Client (mit libweb Sockets in C) zu implementieren. Ich benutze cmake, um den Software-Kompilierungsprozess zu steuern.Wie Debug-Protokollierung mit Libwebsockets aktivieren?
Meine Frage ist einfach: Wie die Debug-Protokollierung mit Libwebsockets aktivieren?
Zuerst habe ich zusammengestellt und libwebsockets installiert, wie es Hinweise in der Dokumentation sagte über lws Aufbau:
mit Debug-Informationen und _DEBUG für niedrigere Priorität Debug-Meldungen in, verwenden
zusammengestellt bauen$ cmake .. -DCMAKE_BUILD_TYPE = DEBUG
Von Libwebsock ets 2.1 doc Hinweise zur Codierung mit lws (https://libwebsockets.org/lws-api-doc-master/html/md_README.coding.html):
Debug Logging
Auch lws_set_log_level api verwenden Sie einen benutzerdefinierten Rückruf bereitstellen kann tatsächlich die Log-String emittieren. Standardmäßig verweist dies auf eine interne emit-Funktion, die an stderr gesendet wird. Wenn Sie es auf NULL setzen, bleibt es so, wie es ist.
Eine Hilfsfunktion lwsl_emit_syslog() wird von der Bibliothek nach exportiert, um die Protokollierung in syslog zu vereinfachen. Sie müssen weiterhin setlogask, openlog und closelog in Ihrem Benutzercode verwenden.
Die Logging-APIs sind für Benutzercode zur Verfügung gestellt.
lwsl_err (...) lwsl_warn (...) lwsl_notice (...) lwsl_info (...) lwsl_debug (...) Der Unterschied zwischen Ankündigung und Info ist, dass Hinweis wird standardmäßig protokolliert werden während info standardmäßig ignoriert wird.
Wenn Sie nicht mit _DEBUG Aufbau definiert, das heißt, ohne diese
$ cmake .. -DCMAKE_BUILD_TYPE = DEBUG dann Werte unter Hinweis einloggen Sie nicht tatsächlich in kompiliert bekommen.
Wie in this (official) example, ich setzte lws_set_log_level(10, NULL);
am Anfang meiner WebSocket-Hauptfunktion.
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)
Dann i laufen Cmake:
cmake .. -DCMAKE_BUILD_TYPE=DEBUG
make
Alles funktioniert gut, mein websocket Client scheint ok.
Aber ich habe keine Debug-Protokolle ... Was fehlt mir?