質問

[OK]をので、私はASP.netやC#上で実行されているウェブサイトのエラー・ログ・ファイルを持ってしようとしています。

私は定期的にパスを駆動するために保管しようとしました。 それは、サーバーをピックアップし、そこに格納するC#コード(ページの背後にあるコード)であるので、それを期待。 (最終的にそれがサーバー上で実行されますコード)

生憎私にとっては真実ではないthatsの。これは、クライアントがサイトを開き、そこからローカルマシンに保存されます。

どのようにサーバマシン上で保存することを強制することができますか?

私は1つの場所にエラーログのすべてをしたいです。 読み取りまたはこれを行う方法上の任意の提案ます。

   string path = "C:\\WebSite";
   string error = "error";          
   try
    {
      // check if dir exists if it does i add file name to the path
      // i removed code to keep it simple
      path += "\\logs.txt";

      FileStream log_fs = 
              new FileStream(path, FileMode.Append, FileAccess.Write);
      StreamWriter log_sw = 
              new StreamWriter(log_fs);
      string log = String.Empty;

      // formate log string using error message

      log_sw.Write(log);
      log_sw.Close();
      log_fs.Close();
   }
   catch (Exception ex)
   {
        // here I e-mail the error in case logging failed
   }

このコードではなく、サーバーの

、ローカルマシン上のファイルを生成します。
役に立ちましたか?

解決

あなたはこのようなコードを使用して、Webサーバー上の任意の場所(ASPNETユーザーアカウントがへの書き込み権限を持っていること)にログインすることができます:

string log = String.Empty;

// format log string using error message

try
{
    using (StreamWriter logFile = new StreamWriter(@"C:\WebSite\logs.txt", true))
    {
        logFile.WriteLine(log);
    }
}
catch
{
    // here I e-mail the error in case logging failed
}

このウェブサイトをホストしているWebサーバーにファイルを書き込みます。さて、あなたは、開発中にローカルにウェブサイトを実行している、あなたがウェブサイトをテストするときにどちらかのビルトインのVSのWebサーバまたはIIS、そしてもちろん、ファイルがローカルマシン上に作成されます。

使用している場合

他のヒント

、あなたの質問の提案部分に答えるために、あなたはそれが、 ELMAH を使用して検討しています別のストレージにエラーを記録します。

のMicrosoft SQL Serverの オラクル(OracleErrorLog) SQLiteの(バージョン3)データベースファイル Microsoft Accessの(AccessErrorLog) VistaDB(VistaDBErrorLog) ルースXMLファイル RAM(メモリ)

または電子メールを介して送信、Twitterの

ELMAHはセットアップが非常に簡単かつ非常に効果的です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top