以前に作成したJavaWebアプリケーションをAzureに移行することを計画しています。log4j
ローカルで作成されたファイルに保存されたアプリケーションレベルのログに以前使用されていたアプリケーション。問題は、Azureロールに複数のインスタンスがある場合、これらのログを収集して集約し、仮想マシンのハードドライブではなく永続ストレージに保存する必要があることです。
ロギングはアプリケーションの重要なコンポーネントですが、実際の作業を遅くしてはなりません。私は複数のオプションを検討しましたが、ベストプラクティス、セキュリティ、ログの一貫性、および保存時間と後の処理の両方でのパフォーマンスを考慮したベストソリューションに興味があります。オプションのリストは次のとおりです。
- カスタムでlog4jを使用して、AzureSQLに
Appender
情報を格納します。 - カスタムでlog4jを使用して、AzureTables
Appender
ストレージに情報を格納します。 - ローカルハードドライブから上記の永続ストレージのいずれかにデータを転送する追加のツールを作成します。
他の方法はありますか、それともJavaのこの問題に対する完全な解決策はありますか?上記の基準を考慮すると、上記のどれが最適ですか?