문제

좋아, 그래서 ASP.NET 및 C#에서 실행되는 웹 사이트의 오류 로그 파일을 갖기 위해 노력하고 있습니다.

나는 정기적 인 길로 운전하기 위해 보관을 시도했다. C# 코드 (페이지 뒤에 코드)이므로 서버를 선택하여 저장합니다. (결국 서버에서 실행되는 코드입니다)

나를 위해 불행히도 사실이 아닙니다. 클라이언트가 사이트를 여는 로컬 기계에 저장됩니다.

서버 시스템에 어떻게 저장되도록 강요 할 수 있습니까?

한 곳에서 모든 오류 로그를 원합니다. 독서 또는이를 수행하는 방법에 대한 제안.

   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
   }

이 코드는 서버 대신 로컬 컴퓨터에서 파일을 생성합니다.

도움이 되었습니까?

해결책

다음과 같은 코드를 사용하여 웹 서버의 모든 위치 (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
}

웹 사이트를 호스팅하는 웹 서버에 파일을 작성합니다. 이제 개발 중에 웹 사이트를 로컬로 실행하고 내장 대 Webserver 또는 IIS를 사용하는 경우 웹 사이트를 로컬로 테스트 할 때 파일이 컴퓨터에서 생성됩니다.

다른 팁

질문의 제안 부분에 답하기 위해 사용을 고려 했습니까? 엘마, 다른 저장지에 오류를 기록합니다.

Microsoft SQL Server Oracle (OracleRorlog) SQLITE (버전 3) 데이터베이스 파일 Microsoft Access (AccessErrorlog) Vistadb (Vistadberrorlog) 느슨한 XML 파일 RAM (Memory)

또는 이메일, 트위터를 통해 보내십시오

Elmah는 설정하기가 매우 쉽고 매우 효과적입니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top