同期ログは、ログメッセージをファイルに書き込んだ後、プログラムの実行を続行することがわかっています。非同期ロガーはログメッセージをキューに入れ、別のスレッドに書き込みます。私は私のプロジェクトでLog4CPlusを実装し始めており、いくつかのことが私の頭に浮かんだ。非同期ロガーはパフォーマンスに本当に役立ちますか?
LogObjectをさらに初期化することはできません。これは、より多くのファイルハンドルを開くためです。私たちはそれを必要としないためです。 (私は、UploadLogObj、DownloadLogOb、WebReqLogObj、AuthLogObjなどのフィーチャーベースのロギングオブジェクトを使用する必要があることを知っています)。 Logオブジェクトを追加するたびにログスレッドが増える可能性があります。
私は単一ログオブジェクトを使用し、複数のスレッドからログメッセージをプッシュすると、メッセージキューへの書き込みを防止するためにいくつかのmutexロックが必要であると思います。私の質問は、このミューテックスのロックがプロセスを遅くしないでしょう、それはパフォーマンスの問題を作成しません..?
私はちょうど非同期ロガーがどのように動作するのだろうか、私はコードを調べることができます、それは一つの方法です。しかし、答えが多くの人々に啓発されることを願っています。
'boost :: lockfree :: queue'のように、ロックフリーのキューを使うことができます。 – Zeta
**非同期ロガーは、別のスレッドで** IOタスク**を行うために行われます。 – Jarod42