[C#] 가계부 만들기 - Log 남기기

프로젝트/가계부(1)  2013.03.13 09:00

안녕하세요 명월입니다.


이제야 가계부 메인이 완성이 되어 가네요.. 1달 간 길고 길었네요.. 이제 기본 메인은 다 만들었으니 이제부터는 핵심적인 것을 공부(?) 해가면서 포스팅 할 수 있겠습니다.


프로젝트의 마지막 가장 귀찮은 작업(?)의 로그 붙히기 입니다.
초반에 로그 클래스를 만들어 놓기는 했으나 보통 초반에는 기본적인 로그를 만들어 놓고 에러가 날 만한 곳에 로그를 깔아둡니다. (에러가 날만한 곳의 로그처리는 코딩이 끝나고 나서 찾기에 힘들기 때문입니다.)

작업이 끝나고 나서 FUNCTION 로그, LINE 로그, FILE 로그를 남기는게 일반적인 순서입니다. 뭐 이 순서가 바뀔 수는 있어요.. 정해 놓은 것은 아닌데.. 저는 이렇게 합니다. ^^


C++ 에서는 __FUNCTION__, __LINE__, __FILE__ 메크로가 있어서 로그 작업하기가 편한데 C#에서는 매크로가 없어졌기 때문에 StackTrace 클래스로 값을 받아서 사용해야 합니다



이렇게 6개의 FUNCTION 로그,FILE 로그,LINE 로그함수를 선언했습니다.



이 함수들의 사용법에 대해 알아보겠습니다.


FunctionStart 는 함수가 시작될때, FunctionEnd 는 함수가 끝날때에 넣습니다.
그리고 LineLog는 보통 디버깅 값을 넣을 때, 애매한 값이 자주 들어갈 때 소스의 라인을 표시하기 위한 함수입니다.
FileLog 는 거의 쓸일이 없는데. 이 경우는 비슷한 이름의 함수가 여러 클래스에서 선언 된 경우 구분을 짓기 위하여 자주 사용되는 함수 입니다.
그 밖의 메시지 함수는 메시지를 받을 때 값을 표시하는 함수입니다.


이제 부터 각 소스에 이걸 넣어야 한다는 노가다(?)가 필요한 작업입니다.
여기에 그 모든 걸 표시할 필요는 없고 몇개의 예제 정도만 추출하여 확인 해 보겠습니다.






그럼 결과 화면으로 확인 해 보겠습니다.



로그 파일에 .ctor이란 함수이름이 있는데 이것은 생성자입니다
그리고 이렇게 표시되는 것을 보니 프로그램의 흐름이 어떻게 흘러가는지 확인이 가능하네요.
좀 더 자세히 기록하고 싶으면 FILELog와 LINE LOG를 넣으면 더 자세한 값이 나옵니다.


약간의 팁으로 프로그램을 만들면서 로그를 생략하는 경우가 간혹 있습니다.
로그는 프로그램의 가장 기본적(?)인 사양이면서 앞으로 튜닝, 유지보수, 버그등을 찾는 데 아주 중요한 데이터이므로 꼭 기록을 해 놓는 것이 좋습니다.


댓글 0개가 달렸습니다.
댓글쓰기