J'essaie d'implémenter un client websocket (avec libwebsockets en C). J'utilise cmake pour contrôler le processus de compilation du logiciel.Comment activer la journalisation de débogage avec Libwebsockets?
Ma question est simple: Comment activer la journalisation de débogage avec Libwebsockets?
D'abord je compilé et installé libwebsockets comme il dit dans la documentation Remarques sur la construction lws:
construire avec les informations de débogage et _DEBUG pour les messages de débogage moins prioritaires compilé, utilisez
$ cmake .. -DCMAKE_BUILD_TYPE = DEBUG
De Libwebsock 2.1 ets doc Remarques sur le codage avec lws (https://libwebsockets.org/lws-api-doc-master/html/md_README.coding.html):
Enregistrement de débogage
utilisant également api lws_set_log_level vous pouvez fournir un rappel personnalisé pour émettre effectivement la chaîne de journal. Par défaut, cela indique une fonction d'émission interne qui envoie à stderr. Le mettre à NULL le laisse comme est à la place.
Une fonction d'assistance lwsl_emit_syslog() est exportée de la bibliothèque vers pour simplifier la consignation dans syslog. Vous devez toujours utiliser setlogmask, openlog et closelog dans votre code utilisateur.
Les API de journalisation sont disponibles pour le code utilisateur.
lwsl_err (...) lwsl_warn (...) lwsl_notice (...) lwsl_info (...) lwsl_debug (...) La différence entre avis et information est cet avis sera enregistré par défaut alors que info est ignorée par défaut.
Si vous n'êtes pas la construction avec _DEBUG défini, par exemple, sans que cela
$ cmake .. -DCMAKE_BUILD_TYPE = DEBUG puis connectez-vous ci-dessous les niveaux avis ne se fait pas compilé.
Comme dans this (official) example, je mets lws_set_log_level(10, NULL);
au début de ma fonction principale 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)
Puis-je exécuter CMake:
cmake .. -DCMAKE_BUILD_TYPE=DEBUG
make
Tout fonctionne très bien, mon client websocket semble ok.
Mais je n'ai pas de journaux de débogage ... Que manque-t-il?