2017-08-18 28 views
3

C++用のロガーが必要です。そして私はこのポストSmall logger classを見つけました。これは私にこのシンプルなロガーをもたらしましたhttp://www.drdobbs.com/cpp/201804215ログファイルを書き込んで、C++用にメモ帳でリアルタイムに読む方法

主に次の方法を使用してログファイルに書き込みます。

FILE* pFile = fopen("application.log", "a"); 
std::ostringstream os; 
os<<"I am a log line."<<std::endl; 
fprintf(pFile, "%s", os.str().c_str()); 
fflush(pFile); 

しかし、期待通りに機能しません。私は、ログファイルをメモ帳で開いた状態で、新しいログラインがそれぞれfprintffflushの直後に表示されると仮定します。しかし、更新を見るためにはメモ帳でファイルを閉じて再度開く必要があることが判明しました。

C++でログファイルを書き込む方法はありますか?リアルタイムで読み込みできるので、ログファイルはwin32コンソールまたはVS出力ウィンドウに似ていますか?私はすべてをconsole.log Javascriptにダンプすることができます日を逃す。 :)

ありがとうございました。

+7

これはC++の問題ではありません。ファイルが変更されたかどうかは、メモ帳でチェックしません。それを行うプログラムを使用して、それは動作します。 – nwp

+2

自動更新するファイルビューアが必要です。 – NathanOliver

+2

たとえば、メモ帳++ – mjs

答えて

4

これはコードに問題はありませんが、これはメモ帳の問題です。 メモ帳では、開いているファイルの変更を自動的に確認しません。

代わりに、たとえばNotepad ++のようなツールを使用するか、プログラマ向けに設計されたほとんどのエディタを使用する必要があります。

cygwinをインストールしている場合は、tail -fを使用してログファイルへの追加を監視することもできます。

0

mjsから受け入れられた回答が正しい方向に私を指摘した後、私は "notepad auto refresh"を検索し、これがhttps://www.raymond.cc/blog/monitor-log-or-text-file-changes-in-real-time-with-notepad/であることを発見しました。

Windowsのテキストファイルの変更を監視するためのいくつかのオプションが用意されています(Notepad ++やテキストファイルの変更を監視するための特別なソフトウェア、キーワードフィルタ/強調表示、保存/読み込みセッションなど)。

私と同じ問題が発生した場合は面白いかもしれません。乾杯。

関連する問題