log4netとLoggingApplicationBlockの両方が有効な選択肢です。 ELMAHは主にエラーに焦点を当てていると思います ロギングなので、おそらくそれだけではありません。
職場では、いくつかのプロジェクトでlog4netを使用しています。安定性、パフォーマンス、拡張性があり、問題は発生していません。
私はおそらくlog4netでロギングを行い、ELMAHでも例外をログに記録します。未処理の例外を手動でログに記録でき、アプリケーションでキャッチして処理した例外は、ELMAHを1回呼び出すだけでログに記録できます。これは二重ロギングのように見えるかもしれません(そしてそれは:-))。ただし、アプリケーションで予期しない問題が発生したときにELMAHログを記録しておくことは非常に価値があります。
NLogプロジェクト について良いことを聞いたことがあります。 、しかしそれを自分で使用したことはありません。 log4netよりも少し複雑に見えますが、コンテキスト情報をログメッセージに自動的に追加できるという追加の利点があります(ELMAHに少し似ています)。