問題タブ [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.Log に対する g++ 静的リンク エラー
Boost.Log に対して静的にリンクすると、リンク エラーが発生します。コンパイラのバージョンは g++ 4.8.1 です。ブースト バージョンは 1.55.0 です。動的リンクは問題なく実行できますが (make ファイルに "-DBOOST_LOG_DYN_LINK" を指定)、静的リンクを実行するとリンク エラーが発生します。この問題は、他のブースト ライブラリでは発生しません。この問題を簡単に再現できるように、コードを単純化しました。
リンク エラーを生成するビルド コマンド:
ただし、lib ファイルを明示的に指定すると、問題は発生しません。
また、 -L オプションを追加して同じエラーを取得しようとしました:
エラーログは次のとおりです。
c++ - Boost.Log の問題
Boost.Log に問題があります: これはスニペットです:
次の出力があります。
フォーマットがうまくいかないようです...どうして間違っているのでしょうか?
c++ - ブーストログ リンカ エラー
ソースから Boost 1.55 をダウンロードしてビルドしました。Boost-log を使用しようとしています。基本的なケース ( http://boost-log.sourceforge.net/libs/log/doc/html)/log/tutorial.html#log.tutorial.trivialでは問題なく正常に動作していますが、いくつか使用しようとするとより高度な機能 (このような - http://boost-log.sourceforge.net/libs/log/example/doc/tutorial_fmt_stream.cpp ) 私はこのエラーが発生しています:
main.obj : エラー LNK2019: 未解決の外部シンボル "void __cdecl boost::filesystem::path_traits::convert(char const *,char const *,class std::basic_string,class std::allocator> &,class std:: codecvt const &)" (?convert@path_traits@filesystem@boost@@YAXPBD0AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@ABV?$codecvt@GDH @5@@Z) 関数で参照されている "void __cdecl boost::filesystem::path_traits::dispatch,class std::allocator > >(class std::basic_string,class std::allocator > const &,class std:: basic_string,class std::allocator > &,class std::codecvt const &)"(??$dispatch@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@path_traits@filesystem@boost@@YAXABV?$basic_string@DU?$ char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@4@ABV?$ codecvt@GDH@4@@Z)
1>main.obj: エラー LNK2019: 未解決の外部シンボル "void __cdecl boost::log::v2s_mt_nt5::aux::code_convert(unsigned short const *,unsigned int,class std::basic_string,class std::allocator > & ,class std::locale const &)" (?code_convert@aux@v2s_mt_nt5@log@boost@@YAXPBGIAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@ @ABVlocale@6@@Z) 関数 "private: void __thiscall boost::log::v2s_mt_nt5::basic_formatting_ostream,class std::allocator> ::aligned_write(unsigned short const *,__int64)" で参照 (??$aligned_write @G@?$basic_formatting_ostream@DU?$char_traits@D@std@@V?$allocator@D@2@@v2s_mt_nt5@log@boost@@AAEXPBG_J@Z)
1>main.obj: エラー LNK2019: 未解決の外部シンボル "public: static class std::codecvt const & __cdecl boost::filesystem::path::codecvt(void)" (?codecvt@path@filesystem@boost@@SAABV ?$codecvt@GDH@std@@XZ) 関数で参照される "public: __thiscall boost::filesystem::path::path(char const (&)[14],void *)" (??$?0$$ BY0O@$$CBD@path@filesystem@boost@@QAE@AAY0O@$$CBDPAX@Z)
したがって、基本的に、関数 convert(...)、code_convert(...)、および codecvt(...) は .lib ファイルで見つかりません。
私はすでにすべてのリリース ライブラリ (ブーストのビルド中に作成された .lib ファイル) を「追加のライブラリ」に追加しようとしましたが、通常、ビジュアル スタジオはすべてのライブラリを見つけると思いますが、ライブラリでそれらの関数を見つけることができません。どうすればこれを修正できますか?
Visual Studio 2010 (msvc10.0)、32 ビット、リリースおよびデバッグを使用して、ソースから Boost 1.55 をビルドしました。私はWindows 7 x64で作業しています。
c++ - 共有ライブラリにリンクすると Boost Log が正しく機能しない
私はこれをやろうとしました: Boost::Log を使用する Windows (*.dll) で 1 つの共有ライブラリを作成します ( Boost::Log をこのライブラリに静的にリンクしたいのは、すべてを 1 つの DLL ファイルだけにパッケージ化したいからです)。うまくいきませんでした。
私のプロジェクトには、次の 4 つのファイルがあります。
私のCMakeLists.txt:(Boostライブラリを見つける別のCMakeLists.txtがありますfind_package(Boost 1.54.0 REQUIRED thread log log_setup filesystem date_time system)
)
私のmylog.cpp :
そしてmylog.h :
私のmain.cpp :
ライブラリmylogを静的なもの (SHARED キーワードなし) としてコンパイルし、プログラムtestlogを実行すると、ログ メッセージがファイルtestlog.logに保存され、コードが示すように画面に何も出力されません。
しかし、 (SHARED キーワードを使用して) DLL共有ライブラリにコンパイルすると、コンパイルは成功しましたが、結果は期待どおりではありませんでした。ログ ファイルは作成されず、メッセージは異なる形式で画面に表示されました。関数initLogが実行されていないようです:
これについて私を助けてください。ありがとう。
P/S: Boost::Log::Trivial を使用せずに、ロギング用のカスタム シンクを作成しようとしましたが、結果は同じです。Boost 1.54.0 と 1.55.0 の両方がテストされています。
boost-log - ログに記録されたメッセージを boost::log::record_view から文字列として取得することは可能ですか?
のドキュメントにrecord_view
は、ログ メッセージ文字列をカプセル化すると記載されています。
consume
カスタムbasic_string_backend
サブクラスの関数のコンテキストで取得したいと思います。
それは可能ですか、またはから派生させる必要がありbasic_formatted_sink_backend
ますか?
c++ - Boost.Log をファイルと標準出力に同時に出力しますか?
boost::log
stdout へのログ記録 (TRIVIAL
マクロを使用)またはファイルへのログ記録 (基本的にチュートリアルの手順に従います)に成功しました。
ファイルと標準出力に同時に ログを記録するように構成するにはどうすればよいでしょうか?
これは、ログ ファイルと、コンソールのログに出力されるすべての出力の両方が必要な場合のセットアップでの一般的な使用例です。
ご意見をお待ちしております。
c++ - boost.log ロガーの重大度を取得します..?
severity_logger
次のように設定された単純な boost.log ロガーがあるとします。
プログラムで重大度を確認するにはどうすればよいですか?
すなわちlogger.getSeverity()
..のような何か?
StackOverflow に関するドキュメントやその他の質問を調べましたが、単純な API 呼び出しとは何かを見つけることができませんでした..?