태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

[Vision] Log management class - 로그 관리 클래스

Posted on 2008.03.28 04:23
Filed Under Project


Def.


[Major Message]
0xx - Failed
1xx - Success
2xx - Warning


[Minor Message]
-Failed
00 - 트랜스포트 레이어 생성실패
01 - 카메라를 찾지 못함
06 - 화상 캡쳐 실패


-Success
01 - 카메라 찾기 성공
02 - 카메라 열기 성공
03 - 카메라 연결 성공
04 - 라이브 그랩 시작
05 - 라이브 그랩 중지
06 - 화상 캡쳐 완료

                                                                                                                                                                                       


[Header]

[code]/* 2008.04.07 Furyheimdall - Log Class */
#pragma once
class CLog : public CDialog
{
private:
    CEdit hLogWindow;              //인스턴스가 가지는 에디트박스 컨트롤 변수
public:
    void DDX_Log_Control(CDataExchange* pDX, int nIDC);  //DDX(DoDataExchange) 등록 메소드
    void WriteLog(BYTE MessageCode);         //정의된 메세지코드에 해당하는 로그를 출력
    void WriteLogString(CString MessageString);     //사용자정의 문자열을 로그로 출력
};
[/code]

[Source]

[code]/* 2008.04.07 Furyheimdall - Log Class */
#include "StdAfx.h"
#include "Log.h"
#include "UserDefine.h"
#include <math.h>
/* DDX 등록을 제공  (MFC DDX 메소드에서 사용) */
void CLog::DDX_Log_Control(CDataExchange* pDX, int nIDC)
{
    DDX_Control(pDX, nIDC, hLogWindow);
}
/* 정의된 메세지코드에 해당하는 로그를 출력 */
void CLog::WriteLog(BYTE MessageCode)
{
    CString LogMessage;
    /* 메세지 코드에 대한 로그 스트링 정의 */
    static TCHAR *MajorMessage[] = {_T("Failed"), _T("Success"), _T("Warning"), _T("Work")};
    static TCHAR *MinorMessage[] = {
        /*Error*/
        _T("Create failed the Transport layer"),
        _T("Camera not found."),
        _T("Reserved"),
        _T("Reserved"),
        _T("Reserved"),
        _T("Reserved"),
        _T("Video capture"),
        _T("Reserved"),
        _T("Reserved"),
        _T("Reserved"),
        /*Success*/
        _T("Reserved"),
        _T("Camera found"),
        _T("Camera open"),
        _T("Camera connect"),
        _T("Start the Live grab"),
        _T("Stop the Live grab"),
        _T("Video capture"),
        _T("Close the Camera"),
        _T("Image Processing"),
        _T("Reserved"),
        _T("Reserved"),
        /*Warning*/
    };
   
    /* 메세지 길이를 기준으로 메이저와 마이너 코드를 구한다 */
    int Major = MessageCode / (int)pow(10.,(MESSAGE_LENGTH-1));
    int Minor = MessageCode % (int)pow(10.,(MESSAGE_LENGTH-1));
   
    /* 메세지 타입 카운트를 기준으로 마이너 코드의 메세지를 구한다 */
    LogMessage.Format(_T("[%03d] %s-%s\n"),MessageCode,MajorMessage[Major],MinorMessage[Minor+(Major*MESSAGE_TYPE_COUNT)]);
    hLogWindow.SetSel(0,-1);
    hLogWindow.SetSel(-1,-1);
    hLogWindow.ReplaceSel(LogMessage);
}

/* 사용자정의 문자열을 로그로 출력 */
void CLog::WriteLogString(CString MessageString)
{
    hLogWindow.SetSel(0,-1);
    hLogWindow.SetSel(-1,-1);
    hLogWindow.ReplaceSel(MessageString);
}[/code]

Log Window Management Class

Class : CLog
Include : Log.h


[Member Method]
void DDX_Log_Control(CDataExchange* pDX, int nIDC);  //DDX(DoDataExchange) 등록 메소드
void WriteLog(BYTE MessageCode);         //정의된 메세지코드에 해당하는 로그를 출력
void WriteLogString(CString MessageString);     //사용자정의 문자열을 로그로 출력

로그창을 관리하는 클래스이다.
현재 에디트 박스 컨트롤만은 지원하고 있다.
내부적으로 에디트박스 컨트롤 변수를 가지고 있기 때문에 별도의 에디트박스 컨트롤을 선언할 필요없이 DoDataExchange 메소드에서
CLog 클래스가 제공해주는 DDX_Log_Control 메소드를 사용하여 등록해준다.

EX)

void CTeamCPPDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
m_Log.DDX_Log_Control(pDX, IDC_LOG);  //(*)CLog 클래스에서 제공하는 DDX 메소드
}


CLog 클래스는 두가지 로그 출력 메소드를 지원한다.
WriteLog 메소드는 미리 정의된 코드에 맞춰 로그를 출력하기 때문에 몇가지 정해진 유형(에러,성공,경고)에 대한 정의에 적합하다.
WriteLogString 메소드는 사용자가 직접 문자열 이용해서 출력할 수 있도록 제공된다.

신고

댓글을 달아 주세요

About



모바일 페이지 QR 코드

Counter

· Total
: 468,648
· Today
: 0
· Yesterday
: 142


DNS server, DNS service