2015-02-05 5 views
0

새 ASP.NET 사이트에 Trace을 사용하여 로깅을 추가하고 있습니다. 프로젝트를 로컬에서 실행할 때 예상대로 로깅이 작동합니다. Visual Studio를 통해 파일 시스템을 게시하여 프로젝트를 게시하면 사이트가 잠시 동안 (몇 초에서 몇 분 사이) 성공적으로 로깅되지만 결국에는 출력 파일에 쓰지 않습니다. 내가 초기화하고있어 방법은 다음과TextWriterTraceListener가있는 Trace.WriteLine()이 게시 된 ASP.NET 사이트에서 작동을 중지합니다.

입니다 내에서 TraceListenerGlobal.asax.cs :

protected void Application_Start() 
{ 
    textWriterTL = new TextWriterTraceListener(logFilePath); 
    Trace.Listeners.Add(textWriterTL); 
    Trace.AutoFlush = true; 

    ... 
} 

나중에, 웹 API 컨트롤러 방법, 내가 지금처럼 Trace에 쓰기 :

Trace.WriteLine("An error occurred"). 

그렇게하지 내가 틀에 박힌 어떤 일을하고있는 것처럼 느낀다. 일정 기간이 지나면 사이트가 로깅을 중단하는 이유는 무엇입니까? Application_Start 방법에 당신이 어떤 클래스 인스턴스를 souldn't 때문에

답변

0

은 MSDN의 문서에 따라 발생합니다

당신은 응용 프로그램을 시작하는 동안 정적 데이터를 설정해야합니다. 인스턴스 데이터는 생성 된 HttpApplication 클래스의 첫 번째 인스턴스에서만 사용할 수 있으므로 설정하지 마십시오.

난 그냥이 예제처럼의 Web.config에서 TraceListener에서 설정하는 것이 좋습니다 :

<system.diagnostics> 
    <trace autoflush="true"> 
     <listeners> 
     <add type="System.Diagnostics.TextWriterTraceListener" name="FileListener" initializeData="MyLog.log" /> 
     <remove name="Default" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

참조 : https://msdn.microsoft.com/en-us/library/ms178473.aspx