2

Boost.Logのドキュメントを読むと、1つのアプリケーションから複数のファイル/シンクに「ファンアウト」する方法と、複数のスレッドを連携させて1つの場所にログを記録する方法が説明されていますが、その方法に関するドキュメントはありますか?複数のプロセスを単一のログファイルに記録しますか?

私が想像するのは、すべてのプロセスが独自の「プライベート」ログファイルにログを記録することですが、さらに、特定の重大度を超えるメッセージも「共通」ログファイルに記録されます。これはBoost.Logで可能ですか?これを簡単にするシンクの構成はありますか?

ここのFAQで説明されているのと同じ「タイムスタンプの故障」の問題が発生する可能性があることを理解していますが、タイムスタンプが正しい限り、それで問題ありません。これはすべて1台のマシン上にあるため、リモートファイルシステムの問題もありません。

4

1 に答える 1

1

私の期待は、ログファイルを直接書き込むBoost.Logバックエンドが、ログエントリの書き込みの間にそれらのファイルを開いたままにすることです。ファイルシステムは通常、複数のプロセスがファイルに書き込むことを許可しないため、これにより、複数のプロセスから同じログファイルを使用する際に問題が発生します。

すべてのロギングを1か所にまとめるために使用できるBoost.Logバックエンドがいくつかあります。これらは、syslogおよびWindowsのイベントログバックエンドです。これらのうち、syslogバックエンドがおそらく最も使いやすいです。

于 2012-11-06T19:28:23.210 に答える