2012-05-14 6 views
9

ブーストログを設定するにはどうすればいいですか?ブーストログを設定するにはどうすればいいですか?

プログラムを再起動した後、ログファイルを消去しないでください。

int init_log() 
{ 
    typedef sinks::synchronous_sink<sinks::text_file_backend> file_sink; 
    boost::shared_ptr<file_sink> sink(new file_sink (
     keywords::file_name = "app.log", // only one files 
     // keywords::open_mode = (std::ios::out | std::ios::app), // is not append 
     keywords::open_mode = (std::ios::out | std::ios::app), // is not rotated 
     keywords::rotation_size = 10 * 1024 
    )); 
} 
+1

私はこれを行う方法を知りませんが、log4cppはこのすべてを行い、広く使用されています。 http://log4cpp.sourceforge.net/api/classlog4cpp_1_1RollingFileAppender.html –

+0

[Boost.Log - 回転したファイルに追加するテキストシンクのバックエンドを設定する方法](http://stackoverflow.com/questions/8418917/)ブーストログの構成方法 - テキスト - シンク - バックエンドからローテーションされたファイルへの追加) –

答えて

5

これはflre回転を可能にすると、データが各作成に追加されます(キーが一部を用いたパターンをログ名を追加し、「app.log」のように、その名前を固定されていない)、これを試してみてください。ファイル。ログの消去については、限り、あなたはカスタムfile_collectorを指定していないとして、あなたのログがそのまま残るべき:)

typedef sinks::synchronous_sink<sinks::text_file_backend> file_sink; 
boost::shared_ptr<file_sink> sink(new file_sink(
     keywords::file_name  = "app%m%d%Y_%H%M%S_%5N.log", // file name pattern 
     keywords::rotation_size = 10*1024      // rotation size, in characters 
     )); 
+5

ローテーションサイズに達するまで、ログデータをプログラムの呼び出しごとに同じログファイルに追加する必要があります。このコードでは、すべての実行で新しいログファイルが作成されます。 – ixe013

関連する問題