며칠전에 log file exception관련해서 질문을 드렸었는데요.. logfile쓰는 구문은 다음과 같이 했습니다.
private static readonly object _syncRoot = new object();
lock (_syncRoot)
{
try
{
using (StreamWriter writer = new StreamWriter(filePath, true))
{
writer.WriteLine(strCurTime + strFlog);
}
}
catch (Exception ex) //--> 이부분은 강제로 들어오게 해보니 로그파일에 잘 찍히고 프로그램 다운현상이 발생하지 않았습니다.
{
using (StreamWriter writer = new StreamWriter(filePath, true))
{
writer.WriteLine(strCurTime + "Message: " + ex.Message + "<br/>" + Environment.NewLine +
"StackTrace: " + ex.StackTrace + "" + Environment.NewLine);
}
}
}
근데, 정작 log를 file에 쓰는 것을 try/catch구문을 쓰고, catch()문안에서는 stack부분을 trace해서 찍도록 했었는데요.. 근데, 로그파일에서 (catch()부분이) 파일에 찍히지 않고 그냥 프로그램이 다운되는 현상이 있어서
너무 막연하고 해서 다운될 때 현상의 그림을 첨부했습니다.
mscorlib에서 System.IO IOException이라는 정보만 있어서.. 어디부터 어떻게 힌트를 얻어야 할지 모르겠습니다.
매번 모르는 것 투성이네요.. 너그러이 봐주세요..
참고로, 이 프로그램은 6시간 20분동안 돌다가 다운이 된 것입니다.
프로그램이 실행되는 환경은 로컬DB에 쓰고, 원격DB에 씁니다. 원격DB는 Unplugged 상태입니다. 2초 정도에 한번씩 DB conn.open()을 try()/catch() 합니다.
그때마다 원격DB는 실패처리합니다.그리고 로그파일을 저장합니다.
제 설명이 부족한 부분은 말씀해주시면 더 상세히 부연설명드리겠습니다.
조언 부탁드립니다.
[최초 등록일: ]
[최종 수정일: 11/13/2015]