2008-11-12 5 views
7

File.AppendAllText 메서드를 사용하여 asp.net httphandler의 로그 파일에 이벤트 데이터를 쓰고 있습니다. 여러 요청을 동시에 수신 할 때 어떤 일이 발생할지 걱정됩니다. AppendAllText가 쓰는 파일을 잠급니까?ASP.NET의 로그 파일에 쓰기

답변

6

아니요. 로그 파일 쓰기를 지키는 정적 잠금 개체가 있어야합니다 (예 :

+1

IIS WebGarden에주의하십시오. AFAIK 당신은 다른 프로세스를 가지고 -> 다른 정적 개체. 그래서 yon은 동시성 충돌을 일으킬 수 있습니다. –

+0

Fabrizio가 맞습니다. 웹 팜을 사용하는 경우 모든 배팅이 해제됩니다. 이 경우 데이터베이스에 로깅하는 것이 좋습니다. 어쨌든 50 개의 서버가 동일한 텍스트 파일에 쓰려고하는 것은 아닙니다. –

1

My.Log를 사용하여 로그 파일에 쓸 수 있습니다.

편집 : FileLogTraceListener를 사용하는 경우 해당 수신기는 스레드로부터 안전합니다.

이렇게하면 web.config 파일을 통한 로깅을 제어하고 구성 할 수 있습니다.

8

직접 관리하지 말고 TextWriterTraceListener을 사용하는 것이 좋습니다. 뭔가

TextWriterTraceListener logListener = new TextWriterTraceListener("C:\log.txt", "My Log Name"); 
Trace.Listeners.Add(logListener); 

그리고 로그인 할 때 :

Trace.WriteLine("Log this text"); 

사용하기 매우 간단하고 또한 SQL에 대한 청취자의 많은 다른 유형이있다

그것은 설치 및 사용이 매우 간단합니다 , Event Log (이벤트 로그), text file (텍스트 파일) 등이 있습니다. 따라서 청취자를 변경하려면 코드를 조정할 필요가 없습니다.