调试时打印日志信息

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

调试时打印日志信息

//使用说明

/************************

一、

工程名.h

#include "CxLog.h"

extern CxLog *gCxLog;

二、

工程名.CPP

CxLog *gCxLog;

...InitInstance()

{

bool alive = true;

gCxLog = NULL;

gCxLog = new CxLog(alive);

..

}

...ExitInstance()

{

if(gCxLog != NULL)

{

delete gCxLog;

}

gCxLog = NULL;

..

}

三、

找个全局的地方

#define OUTPUT_LOG_EN //启用日志输出

四、

在任何要打印日志的地方

#ifdef OUTPUT_LOG_EN

CString strTemp;

strTemp.Format(_T("想要添加的工作日志!")); gCxLog->Log(_T("类.cpp"), _T("函数名"),

哪一行比如50, CxLog::CX_LOG_MESSAGE, strTemp); #endif

*************************/

#ifndef _CX_LOG_H_

#define _CX_LOG_H_

#if defined(_MSC_VER)

#pragma warning(disable: 4530)

#endif

#include <stdio.h>

#include <time.h>

#include <assert.h>

#include <list>

#include <iterator>

#include <stdexcept>

#include <exception>

#if defined(_MSC_VER) || defined(__INTEL_COMPILER) #include <comdef.h>

#endif

#include <tchar.h>

#include <process.h>

#include <windows.h>

//////////////////////////////////////////////////////////////////////////

///文件型多线程日志类class for log file

//定义格式化输出

#ifndef CX_LOG_DEFAULT_FORMAT

#if (defined(_MSC_VER) &&

_MSC_VER<=1310) || defined(__BORLANDC__) || (defined(__GNUC__) && defined(_UNICODE)) #define CX_LOG_DEFAULT_FORMAT

_T("%s %s %s(%d): %s\r\n")

#else

#define CX_LOG_DEFAULT_FORMAT

_T("%s %s %s(%s, %d): %s\r\n")

#endif

#endif

//定义格式化输出的缓冲区大小

#ifndef CX_LOG_DEFAULT_FORMAT_SIZE

#define CX_LOG_DEFAULT_FORMAT_SIZE 1024 #endif

//定义是否替换控制用ASCII

#ifndef CX_LOG_REPLACE_CONTROL

#define CX_LOG_REPLACE_CONTROL true

#endif

//定义控制用ASCII的默认替换字符

#ifndef CX_LOG_REPLACE_ASCII

#define CX_LOG_REPLACE_ASCII _T(' ')

#endif

//定义窗口通知消息

#ifndef WM_CX_LOG

#define WM_CX_LOG WM_USER + 2200

#endif

class CxLog

{

public:

enum EnumType{

CX_LOG_MESSAGE = 0,

CX_LOG_WARNING,

CX_LOG_EXCEPTION,

CX_LOG_ERROR

};

static CxLog& Instance()

{

static bool alive = false;

static CxLog log(alive);

if(!alive)

{

OutputDebugString(_T("CxLog has destroy!"));

throw std::runtime_error("CxLog has destroy!"); }

return log;

}

struct Item

{

相关文档
最新文档