私はかなり成熟したアプリケーションを持っていますが、一般的には非常にうまく機能します。問題が発生している領域の 1 つは、監査ログに関するものです。現在、io:format 経由でファイルにログを記録するカスタム gen サーバーを使用しています。大きな問題ではありませんが、最もパフォーマンスが高いわけではなく、さらに重要なことに、ディスクがフラッディングする可能性があります. これらのログは、このシステムの問題を診断するのに非常に重要です。これは、通常、介入がほとんど必要ない単なるブラック ボックスであるためです。ただし、問題が発生した場合、99% の確率で、sasl ログがキャッチするものではありません。したがって、残念ながら、それらをなくすことはできません。
私の質問は、erlang で一般的に受け入れられているベスト プラクティスとは何か、またはそのような「ベスト」プラクティスがあるかどうかについてです。私の基準は次のとおりです。
- Erlang/OTB ライブラリにネイティブであるか、コミュニティによって十分にサポートされている、確立されたフレームワーク (例: disk_logger、lager など)。
- ノンブロッキング、非同期 I/O
- かなり簡単に実装できます(私は初心者ではありませんが、ログの実装を交換するよりも優先度の高い問題に取り組みたいと考えています。)
- 私はファイルロガーを開いているか、単にどこかのデータベースに書き込んでいます。