問題タブ [boost-log]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Boost ログのタイムスタンプ形式が正しくない
Boost 1.54 Log を使用しており、次の方法でログを初期化しています。
これは、生成された出力のサンプルです。
タイムスタンプの出力秒は完全に正しくありませんが、Boost Log のドキュメントによると%S
、秒の正しいフォーマット設定です。これはバグでしょうか?
c++ - ブーストログマクロの説明
ここのブーストログチュートリアルに従いました http://boost-log.sourceforge.net/libs/log/doc/html/index.html
このサンプルをコンパイルして実行しようとしています
コンパイルできません。エラーはhttp://pastebin.com/DcLdWGkeとして返されます
次に、コードを次のように編集します。
今では準拠し、うまく機能しました。ブーストサイトでこのマクロについて読みました:
ユーザー コードで定義されている場合、ライブラリはバイナリが動的に読み込まれるライブラリ ("dll" または "so") としてビルドされていると想定します。それ以外の場合、ライブラリは静的モードで構築されていると見なされます。このマクロは、ログを使用するユーザー アプリケーションのすべての翻訳単位に対して、定義されているか定義されていない必要があります。このマクロは、それをサポートするプラットフォームでの自動リンクに役立ちます。
だから私の質問は: なぜ私は #define BOOST_LOG_DYN_LINK をコンパイルする必要があるのですか?
c++ - boost::log チュートリアルのコードはどのように機能しますか?
しばらく C++ を使っていなかったので、構文に少し戸惑いました。boost::log
ライブラリのチュートリアルから次の行を説明してもらえますか?
私が見る限り、それは関数set_filter()
呼び出しですが、filter
オブジェクトを取ります:
そして式:
ブール値を返しますか? ここはoperator >=
過負荷ですか?定義とマクロを探して理解しようとしましたが、演算子のオーバーロードが見当たりません。私には非論理的に見えます。それは何をするためのものか?それはどのように機能しますか?
c++ - Boost.Log (または Boost.Thread) を使用すると、dllinit.cpp 行 703 で MFC ASSERT が発生する
DLL の 1 つで Boost.Log を使用しようとすると、dllinit.cpp でアサーションを受け取ります。
ログ機能を含む tools.dll があり、Boost.Log を使用してログを記録するように実装しようとしました。この tools.dll は別の helper.dll によって参照されており、両方の DLL がアプリケーションで使用されています。
ただし、アプリケーションを起動すると、ASSERT が発生します。
これは、Boost 1.54 と (付属の) Boost.Log、Boost 1.48 と Boost.Log 1.1 で発生します。
たくさんのメーリング リストや古い投稿を掘り下げました。私がこれまでに理解したことは、Boost.Thread の _pRawDllMain ポインターに問題があり、コメントアウトすることを提案した人もいます
しかし、これはメモリリークにつながりますか?このスレッドは、1.40 以降に修正されると述べていましたが、これが行われたかどうかはわかりません。ここで提案されている Boost への動的リンクは役に立ちませんでした。
ブーストユーザーに尋ねることは、これまでのところ役に立ちませんでした.
ヒント、何を確認すればよいですか?
編集: 標準の DLL として構成されていますが、afxwin.h から API を使用してアプリケーションのバージョン情報を取得するため、MFC100.dll に依存しています。
c++ - 名前空間での Boost.Log エラー
名前空間の下にあるオペランドで operator<< オーバーライドを使用すると、エラーが発生しました。何がこの問題を引き起こしているのかよくわかりません。ソース コードを見てください。
MSVC2013 でコンパイルした場合の完全なコンパイル ログ (要求に応じて):
Boost.Log にバグがありますか、それとも何か間違っていますか?
ブーストバージョンは 1.55 です。
c++ - Boost.Log を使用してログ メッセージが生成されるかどうかをテストする
現在、ソフトウェア プロジェクトの 1 つで Boost.Log を使用しています。ログ メッセージを使用してエラー状態を報告するケースが 1 つあります。Google テスト フレームワークを使用して、この状態が正しく検出されるかどうかをテストしたいと思います。明確にするために、メッセージが生成されるかどうかをテストしたいと思います。フィルターによって削除される場合がありますが、これによりテストが失敗することはありません。これはまったく可能ですか?ヒントはありますか?ありがとう!
c++ - Boost Logロガー操作がconstでないのはなぜですか?
重大度チャネル ロガーを使用しようとしていますBOOST_LOG_SEV
が、const メソッドではないという問題に遭遇しました。open_record() と push_record() の両方が原因であると考えています。
これにより、基本的に、クラス内のすべてのメソッドを const にしないように強制されます。これは、ロガーに書き出す必要があるためです。私はそれを行う余裕がありません-そのため、現時点ではグローバルロガーに制限されています.
私の現在の実装では、各クラスにはチャネルとしてクラス名を持つロガーがあり (コンストラクターで初期化されます)、任意の時点でログ メッセージを発行します。BOOST_LOG_SEV(this->logger, level)
非定数の背後にある理由と、私の設計が Boost::Log を意図していないかどうかを知りたいです。