私は、ソースコードは、情報項目と進捗状況のプリントアウトが含まれているC++プロジェクトでGoogleのロガー(glog)を使用しています:Google Loggerとcoutの両方に送信するにはどうすればよいですか?
std::cout << some_useful_stuff << "\n";
そして、私はアイテムを情報ログに記録するGLOGを使用することができます。
LOG(INFO) << some_useful_stuff << "\n"; \\ gets echoed to stdout
コードベース全体でstd::cout
ステートメントをすべて変更することはできません(私は第三者などのサブレポジトリをいくつか使用しており、は独自のロギングステートメントをに追加できません)、これによりif-elseコンストラクタ(これはとにかく醜いとにかく、ラップロジック内のすべての単一出力ステートメントをppingします)。
stdout
の出力をGLogに複製するにはどうすればよいですか?
std::cout << some_useful_stuff << "\n"; \\ message also goes to LOG(INFO)
おそらく役に立ちます:これは実際には同時に発生する必要はありません。 {CONSOLE、LOGS、BOTH}のような選択肢があると便利ですが、{CONSOLE、LOGS}の間でもっと簡単な選択肢を置くことができます。
また、経験豊富なプログラマーですが、C++の初心者であれば、これはメガシンプルです。申し訳ありません - 事前に感謝!
編集のおかげで@Borgleader ...その変更に打ち勝ちます) – thclark
[boost: :iostreams :: tee_device](http://www.boost.org/doc/libs/1_60_0/libs/iostreams/doc/functions/tee.html)は、2つのストリームに同時に書き込むのに便利です。基本的に2つのストリームのラッパー。 – AndyG