プログレスを表示するようにプログラムを設定するか、それを無効にすることで、プログラムを書き、ユーザーがパッケージのロギングを制御できるようにします。std :: ostreamとstd :: coutを使ったロギング
私は、std::cout
がstd::ostream
であることを知っていますが、その違いはstd::cout
です。結果は標準出力にリダイレクトされます。
私のクラスには、すべてログを記録するstd::ostream
メンバーが必要です。ユーザーが表示を有効にすると、そのメンバーはstd::cout
に接続され、結果が表示されます。それ以外の場合は表示されません。
私が考えていることはこれに似たものである:
class log {
private:
std::ostream display;
public:
void func();
void show_display();
}
void log::func(){
display << "called by func";
}
void log::show_display(){
// redirect display to standard output
}
これを行うには、上記と同様の方法はありますか?そうでない場合、どうすれば同様の結果が得られますか?
ありがとうございました。
"std :: coutが結果を画面に直接表示するという違いがあります。 - いいえ、標準出力に書き込みます。シェルからその出力をリダイレクトできます。 –
@NeilButterworthこれは間違いなく申し訳ありません。私は編集します – Everyone
出力を無視するストリームのためにこれを使うことができます:http://stackoverflow.com/a/11826666/951890 –