728x90
반응형
프로그램을 만들다 보면 예기치 못한 오류들로 문제가 생길 수 있습니다. 개발 단계에서 이러한 오류들을 발견하면 디버깅을 통해서 수정이 가능하지만 베포 단계에서 오류가 발생한다면 이유도 모른 채 프로그램이 종료되거나 의도하지 않게 프로그램이 동작할 수 있습니다. 이러한 것들을 방지하기 위하여 오류가 발생하면 기록하는 로그 파일을 만들어보도록 하겠습니다.
텍스트 파일 형식으로 만들었습니다.
c# |
public static void Log(string str){ // 현재 위치 경로 string currentDirectoryPath = Environment.CurrentDirectory.ToString(); // Logs 디렉토리 경로(현재 경로에 Logs라는 디렉토리 경로 합치기) string DirPath = System.IO.Path.Combine(currentDirectoryPath, "Logs"); // Logs\Log_yyyyMMdd.log 형식의 로그 파일 경로 string FilePath = DirPath + @"\Log_" + DateTime.Today.ToString("yyyyMMdd") + ".log"; // Logs 디렉토리 정보 DirectoryInfo di = new DirectoryInfo(DirPath); // 로그 파일 경로 정보 FileInfo fi = new FileInfo(FilePath); try{ // Logs 디렉토리가 없을 경우 생성 if (!di.Exists) Directory.CreateDirectory(DirPath); // 오류 메세지 생성 string error_string = string.Format("{0}: \t{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), str); // Log 파일이 존재할 경우와 존재하지 않을 경우로 나누어서 진행 if (!fi.Exists){ using (StreamWriter sw = new StreamWriter(FilePath)){ sw.WriteLine(error_string); sw.Close(); } }else{ using (StreamWriter sw = File.AppendText(FilePath)){ sw.WriteLine(error_string); sw.Close(); } } } catch { // 사실 try 부분에서 오류가 나면 답이 없습니다. // 좋은 의견 있으시면 댓글로 남겨주시길 바랍니다. } } |
위처럼 함수로 만들어 둔다면 MainWindow.Log("이러한 오류 발생") 형식으로 사용할 수 있습니다.
반응형
'프로그램 개발 > C#' 카테고리의 다른 글
[wpf] c# ZedGraph 사용하기 - 기본 사용법 (0) | 2021.07.12 |
---|---|
[wpf] TextBox Enter 키 입력 이벤트 (0) | 2021.07.05 |
[wpf] c# 코드로 폴더 선택하기 - FolderBroswerDialog와CommonOpenDialog (0) | 2021.05.02 |
[wpf] c# 코드로 작업 끝내기 (0) | 2021.04.14 |
[wpf] c# 코드로 Style 설정하기 - 2 : 다른 Resource Dictionary 사용 (0) | 2021.03.02 |