我用了一個C++項目,谷歌的記錄(考勤記錄),其中源代碼包含信息項和進步的打印輸出:如何發送給Google Logger和cout?
std::cout << some_useful_stuff << "\n";
而且我可以用出入記錄日誌信息項:
LOG(INFO) << some_useful_stuff << "\n"; \\ gets echoed to stdout
我不能在整個代碼庫中更改所有std::cout
聲明(因爲我使用的是第三方的一些subrepos等,並且無法將它自己的日誌聲明添加到它們),這可以防止我使用if-else建設(無論如何,這將是醜陋的,包裝在邏輯中對每個輸出語句進行壓縮)。
那麼如何將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)對於同時寫入兩個數據流非常有用。基本上是兩個流的包裝。 – AndyG