Windows Mobile 下使用 Native C++ 开发日志类
2010-02-24 20:01:00 来源:WEB开发网简介
日志管理是程序不可以缺少的一个重要组成部分,对于长期运行的后台程序尤为重要,尽管经过了大量的测试,但是在实际运行环境下,程序未免有出错的时候。有时候由于第三方原因导致的,例如电信网络质量下载,掉包等等。在一些看似莫名其妙的问题下,日志文件很多时候就成了救命绳。bug free是我们一直追求的目标,但是我永远不能保证bug free,每次我在面试中说这句话,做销售出生的人会翻白眼,做技术的人会会心一笑。我能保证的是如何尽快的troubleshooting,提高质量,日志文件在这过程中又是最重要的手段之一。下面文章讲述使用Native C++对Windows Embedded CE和Windows Mobile日志文件类的封装。
代码
先上代码,下面分析。需要iToday全部代码也可以到codeplex上去下载。
类定义文件
typedef enum tagLOG_LEVEL{ LOG_TRACE, LOG_INFO, LOG_WARNING, LOG_ERROR, LOG_FATAL, LOG_NONE = 10,}LOG_LEVEL;class Logger{public: static Logger& Instance(); static void SetLogFilePath( const std::string& strFilePath); static void SetLogLevel( const LOG_LEVEL enLogLevel); static void Initialise(); static void Dispose(); //void Log( LOG_TRACE const TCHAR *format, ... ); //void LogInfo( const TCHAR *format, ... ); //void LogWarning( const TCHAR *format, ... ); //void LogError( const TCHAR *format, ... ); //void LogFatal( const TCHAR *format, ... ); void Log( LOG_LEVEL logLevel ,const TCHAR *format, ... ); private: /* more (non-static) functions here */ Logger(); // ctor hidden Logger(Logger const&); // copy ctor hidden Logger& operator=(Logger const&); // assign op. hidden ~Logger(); // dtor hidden static FILE* m_hLogFile; static std::string m_strFilePath; static LOG_LEVEL m_enLogLevel;};
类实现文件
FILE* Logger::m_hLogFile = NULL;LOG_LEVEL Logger::m_enLogLevel = LOG_TRACE;std::string Logger::m_strFilePath = "\Storage Card\DebugInfo.log";TCHAR * LogLevelStr[]={ TEXT("TRACE"), TEXT("INFO"), TEXT("WARN"), TEXT("ERROR"), TEXT("FATAL"),};Logger& Logger::Instance() { static Logger oLogger; return oLogger;}void Logger::SetLogFilePath( const
更多精彩
赞助商链接