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 );