로그 파일을 계속 작성해야하는 경우 추적을 사용 하시겠습니까? Trace에 "listener"를 첨부 할 수 있습니다.
물론
Trace.Listeners.Add(new TextWriterTraceListener("myfilename.txt"));
당신이 파일 이름을 전달하면, 그것의 autoflush하지 않으며, 그것은 종료, 또는 버퍼가 가득 때까지 아무것도 파일에 없습니다. 따라서 프로그램 시작시 스트림을 만들 수 있습니다.
FileInfo fi = new FileInfo("myLogFile.txt");
StreamWriter _sw;
void Main()
{
_sw = fi.CreateText();
_sw.AutoFlush = true;
Trace.Listeners.Add(new TextWriterTraceListener(sw));
}
void Close()
{
if(_sw != null)
{
_sw.Flush();
_sw.Dispose();
}
}
그런 다음 프로그램에서 "로그"에 대한 각 쓰기에 대해 파일을 열고 닫는 대신이 작업을 수행 할 수 있습니다.
Trace.WriteLine("My message here");
추적은 내가 찾은
Trace.WriteLine("My message here", "INFO");
//Output:
//INFO: My message here
한 것은 일부 시스템에 텍스트 파일을 열 수 없다는 것입니다 ... 로그를 위해 중대하다 너무 범주라는 멋진 일을 가지고 있지만, 파일을 열어 복사본을 만들 수 있으며 원본 파일이 계속 채워집니다.
닫지 마십시오. –
옙 ... Writer.Close를 치워라 ( – Derek
) 나는 그것이 중복이라는 것을 안다. 그러나 나는 추가 된 실패 안전으로 Close를 넣는 법을 배웠다. 어쩌면 추천하지는 않지만 내 질문과 관련이 없습니다. – jmease