프로그램에서 편하게 Log를 남길 수 있는 class 입니다.
Singleton을 사용해서 multi thread 환경에서도 하나의 객체만 생성되며,
Log파일의 이름은 발생 날짜 정보와 실행파일의 이름을 조합하여 사용합니다.
Log는 argument list를 사용해서 printf에서 사용하는 다음의 format을 사용할 수 있습니다.
- %d : int
- %c : char
- %s : char *
더 많은 변수를 사용하려면 LogManager.cpp에서 다음 부분을 수정해서 사용하면 됩니다.
va_start( argptr, mesg );
for(int i = 0; i < format.GetLength(); i++){
if(format.GetAt(i) != '%'){
buffer2 = " ";
buffer2.SetAt(0, format.GetAt(i));
buffer2.SetAt(0, format.GetAt(i));
buffer += buffer2;
} else {
i++;
switch(format.GetAt(i)){
case 'd':
buffer2.Format("%d", va_arg(argptr,int) );
buffer += buffer2;
break;
case 's':
buffer2.Format("%s", va_arg(argptr, char*) );
buffer += buffer2;
break;
case 'c':
buffer2.Format("%c", va_arg(argptr, char) );
buffer += buffer2;
break;
}
}
}
va_end( argptr );
사용방법은
1. LogManager.zip 을 다운 받는다.
2. LogManager.zip 의 압축을 푼다.
3. LogManager.h와 LogManager.cpp을 프로젝트에 추가한다.
4. 로그를 남기고 싶은 곳에서
LogManager::GetInstance()->Log("Put your Log Here!!");
과 같은 방식으로 사용한다.
첨부파일
} else {
i++;
switch(format.GetAt(i)){
case 'd':
buffer2.Format("%d", va_arg(argptr,int) );
buffer += buffer2;
break;
case 's':
buffer2.Format("%s", va_arg(argptr, char*) );
buffer += buffer2;
break;
case 'c':
buffer2.Format("%c", va_arg(argptr, char) );
buffer += buffer2;
break;
}
}
}
va_end( argptr );
사용방법은
1. LogManager.zip 을 다운 받는다.
2. LogManager.zip 의 압축을 푼다.
3. LogManager.h와 LogManager.cpp을 프로젝트에 추가한다.
4. 로그를 남기고 싶은 곳에서
LogManager::GetInstance()->Log("Put your Log Here!!");
과 같은 방식으로 사용한다.
첨부파일
반응형
'프로그래밍(Programming) > MFC&API' 카테고리의 다른 글
이벤트가 안먹을때, 리본-리스트컨트롤 GetItemText() (0) | 2013.06.01 |
---|---|
다이얼로그에서 OnIdle() 대신에 OnKickIdle() (0) | 2013.05.30 |
커서 아이콘 지정 (0) | 2013.04.30 |
CMFCPropertyGridCtrl 값 얻기, 세팅 등 메세지 처리 (0) | 2013.04.17 |
오른쪽 버튼으로 빠른 메뉴 구성하기 (0) | 2013.03.26 |