私はwebsocketクライアントを実装しようとしています(C言語でlibwebsocketsを使用)。私はcmakeを使ってソフトウェアのコンパイルプロセスを制御しています。Libwebsocketsでデバッグログを有効にする方法は?
私の質問は簡単です:Libwebsocketsでデバッグログを有効にする方法は?
それはマニュアルにノートを言ったようにまず私はLWSの構築についてlibwebsocketsをコンパイルしてインストール:
を使用し、中にコンパイルされ、優先度の低いデバッグメッセージ のためのデバッグ情報および_DEBUGをビルドするには$ cmakeの。.. -DCMAKE_BUILD_TYPE = LibwebsockからDEBUG
また、ログ文字列を発する実際 にカスタムコールバックを提供することができるlws_set_log_level APIを使用して
ロギング
デバッグ:ETS LWS (https://libwebsockets.org/lws-api-doc-master/html/md_README.coding.html)でコーディング約2.1 DOC ノート。デフォルトでは、これはstderrに送信する内部関数 emitを指しています。 NULLに設定すると、代わりに のままになります。
ヘルパー関数lwsl_emit_syslog()はライブラリから にエクスポートされ、syslogへのロギングが簡単になります。あなたはまだsetlogmask、openlog とあなたのユーザコードでcloselogを使用する必要があります。
ロギングAPIは、ユーザコードで使用できるようになりました。 lwsl_info
lwsl_err(...)lwsl_warn(...)lwsl_notice(...)(...) lwsl_debug(...)通知と情報との違いは、デフォルトではログに記録されますことに注意してください ですinfoはデフォルトでは無視されます。
あなたがこの
$ cmakeの。.. -DCMAKE_BUILD_TYPE = DEBUGが、その後予告以下のレベルを記録 実際にはコンパイルされません。
などがなく、すなわち定義され_DEBUG、で構築されていない場合this (official) example、私はlws_set_log_level(10, NULL);
を私のwebsocket main関数の先頭に入れました。
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クライアントは大丈夫そうです。
しかし、デバッグログはありません...何が欠けていますか?Githubの上LWS-チームへ