www.pudn.com > SMS.rar > Log.h


#pragma once 
#include "..\..\global.h" 
 
#define LOGFILE_MAX_SIZE	2*1024*1024					// 日志文件最大字节数 
#define MAX_LOGBUF_SIZE		1024*4						// 日志临时缓冲大小 
#define EDIT_MAX_TEXT		1024*20						// CEdit 控件最大容纳的文本 
// 日志级别 
#define L_VERBOSE			0x00000000					// 详细,一般是调试信息 
#define L_NORMAL			0x00000001					// 正常,程序运行时显示的一般信息,纪录运行过程 
#define L_WARNING			0x00000002					// 警告,程序运行有错误,但不是致命错误,程序仍然可以继续运行下去 
#define L_ERROR				0x00000003					// 错误,程序运行出现了严重错误,程序必须立即终止执行 
#define L_DEBUG				0x00000004					// 调试,程序在调试版里输出的日志,在Publish版里就没有了 
#define L_LOGNUM			5							// 日志级别的数量 
// 输出位置 
#define L_OUT_CONSOLE		0x00000100					// 输出到控制台 
#define L_OUT_DLG			0x00000200					// 输出到对话框(一般来说是 MessageBox 框) 
#define L_TRACE				0x00000400					// 用 TRACE() 输出到调试信息栏 
#define L_ONLY_LOGFILE		0x00000800					// 只保存到日志文件,不提示任何信息 
#define L_BALLOON			0x00001000					// 气泡提示 
#define L_OUT_UI			0x00002000					// 输出到UI界面,对于服务程序来说,日志信息默认是不输出到UI界面的,少数日志信息需要输出到UI界面时需要加该参数 
 
// 特殊处理 
#define L_HND_ENDSYS		0x00010000					// 系统应该结束 
#define L_HND_REBOOTSYS		0x00020000					// 系统应该重启 
// 日志函数地址 
typedef void (*LOG_FUNC) ( UINT nLevel, char *format, ... ); 
 
#ifdef _DEBUG 
#define HwDbgLog Log 
#else 
#define HwDbgLog 
#endif 
 
DLL_INTERNAL CString GetLogFileName (); 
DLL_INTERNAL void Log ( UINT nLevel, LPCTSTR format, ...); 
DLL_INTERNAL void GetLastLogStrAry ( CStringArray *pStrAry, CUIntArray *pUIntAry ); 
DLL_INTERNAL void AddLogTextToEditCtrl ( 
#ifdef WINCE 
		CEdit *pEditLog, 
#else 
		CRichEditCtrl *pEditLog, 
#endif 
		LPCTSTR lpszLogText, 
		int nLevel 
	); 
DLL_INTERNAL int hwMsgBox ( 
		HWND hWnd, 
		LPCTSTR lpCaption,  
		UINT uType, 
		LPCTSTR lpText, 
		... 
	); 
DLL_INTERNAL void MsgBoxErr ( LPCTSTR lpszErrorMsg, ... ); 
DLL_INTERNAL LRESULT OnWM_SHOWLOG ( CRichEditCtrl *pRichEdit, WPARAM wParam, LPARAM lParam );