asp.net アプリケーションのログ ファイルはどこに配置すればよいですか?
-
08-06-2019 - |
質問
独自のログ モジュールを作成した ASP.NET アプリケーションがあります。
私の質問は、ログ ファイルを書き込む標準的な場所はどこでしょうか?つまり、Web サイトは匿名ユーザー ID として実行されます (例:IIS7 上の IUSR)、書き込み許可があることがわかっている場所が必要です。
乾杯、
解決
プロジェクトのルートにある App_Data フォルダー。Web リクエストには提供されません。したがって、他の人がそれを覗き見ることはできません。
他のヒント
ログ ファイルを別のディスクに置くことをお勧めしますが、Web サイトと同じディスクに読み取りと書き込みの両方を行わないようにすることで、パフォーマンスが少し向上するはずです。ログ ファイルを別のディスクに保存できない場合は、任意のフォルダーを選択します。
いずれの場合も、「ネットワーク サービス」アカウントに、目的のフォルダーに対する「変更」権限を付与する必要があります。
一方、データベースにアクセスできる場合は、そこに情報を記録します。ハードドライブにアクセスするよりもはるかに高速であり、一般には公開されません。データからのレポートも非常に簡単に行うことができます。
私はフォルダー (特に仮想ディレクトリ ホーム フォルダーの外) のアクセス許可を変更する立場になく、App_Data フォルダーをまだ持っていないので、これを使用するのを少しためらっています。
したがって、当面は CommonApplicationData フォルダーを使用します。
- Vista/Server 2008 では、これは C:\ProgramData\ です。
- XP/Server 2003 では、これは C:\Documents and Settings\All Users\Application Data\ です。
私はフォルダー (特に仮想ディレクトリ ホーム フォルダーの外) のアクセス許可を変更する立場になく、App_Data フォルダーをまだ持っていないので、これを使用するのを少しためらっています。
Web サイトをお持ちであれば、必ずどこかにフォルダーがあるはずです。(Web に接続していない) サブフォルダーを追加することはできませんか?ログをグローバルな共有フォルダーにダンプするよりも、ログを保存する場所として適切なようです。
app_data をプッシュするのが最善の方法ですが、プロジェクトを公開するときに、[公開する前に既存のファイルをすべて削除する] オプションにチェックを入れると、フォルダー内の現在のデータが失われることに注意してください。回避策は、app_data フォルダーの削除をスキップすることです。
ロギングを行う別のオプションは、Log4net などの既存のフレームワークを使用することです。