====== Logger ====== **//Inherited from//** NULL **//Inherited by//** NULL **//Friend class//** NULL **//Description//** Logger为XT提供四个级别的日志记录功能,包括错误(error)、警告(warning)、提示(info)、调试(debug),通过设置Logger的文件名可将日志信息重定向输出添加到指定文件的尾部。日志记录的输出范围按照不同级别逐步扩大,比如警告将输出包含错误在内的记录,而调试则输出前述所有记录。Logger的日志记录按行输出,每个记录包含有时间信息,层次信息,标题和日志内容几块。Logger在XT中仅存有一个实例,输出日志记录时只需如下调用即可: XT::Logger::getInstance()->writeLog(XT::LogDebug,"GL","test %d",1); 输出为: 13/02/06 14:26:44 ][DEBUG ][GL ] test 1 **//Members//** * char [[logger#m_strfilename|m_strFileName]][MAX_PATH_LENGTH] * LOG_LEVEL [[logger#m_ilevel|m_iLevel]] * FILE * [[logger#m_pfile|m_pFile]] **//Public interface//** * static Logger * [[logger#getinstance|getInstance]]() * void [[logger#setfilename|setFileName]](const char * filename,bool bAdd = false) * void [[logger#setlevel|setLevel]](LOG_LEVEL iLevel) * const char * [[logger#getfilename|getFileName]]() * void [[logger#writelog|writeLog]](LOG_LEVEL level,const char * title,char * format,...) **//Private interface//** * [[logger#logger1|Logger]]() * void [[logger#gettimestring|getTimeString]](char * pStr) * void [[logger#print|print]](const char * msg) ---- {{anchor:m_strfilename}} **char m_strFileName** 日志记录输出的文件名 {{anchor:m_ilevel}} **LOG_LEVEL m_iLevel** 当前日志记录输出的级别,为LogError,LogWarning,LogInfo,LogDebug四个级别中任意一个 {{anchor:m_pfile}} **FILE * m_pFile** 日志记录输出的文件指针 ---- {{anchor:getinstance}} **static Logger * getInstance()** *function: 获取日志系统的实例,日志系统仅可实例化一次 *parameters: NULL *return value: 日志系统实例的指针 {{anchor:setfilename}} **void setFileName(const char * filename,bool bAdd = false)** *function: 设置日志记录输出的文件名,此时文件指针会重新初始化 *parameters: - [i]const char * filename: 文件名 - [i]bool bAdd = false: 如果文件已经存在,true时添加到文件尾部,否则重新记录 *return value: 无 {{anchor:setlevel}} **void setLevel(LOG_LEVEL iLevel)** *function: 设置日志记录的输出级别 *parameters: - [i]LOG_LEVEL iLevel: 输出级别 *return value: 无 {{anchor:getfilename}} **const char * getFileName()** *function: 获取日志记录当前输出的文件名 *parameters: NULL *return value: 文件名字符串 {{anchor:writelog}} **void writeLog(LOG_LEVEL level,const char * title,char * format,...)** *function: 当level不低于实例的输出级别时,按照指定格式输出日志记录 *parameters: - [i]LOG_LEVEL level: 当前记录的输出级别,当它高于或等于日志的系统级别时可输出 - [i]const char * title: 记录的标题 - [i]char * format: 记录的格式,与printf类似 - [i]...: 可添加多个参数,与printf类似。 *return value: 无 ---- {{anchor:logger1}} **Logger()** *function: 日志系统构造函数,私有函数以禁止多个实例 *parameters: NULL *return value: 无 {{anchor:gettimestring}} **void getTimeString(char * pStr)** *function: 获取日志记录当前的时间戳 *parameters: - [i]char * pStr: 时间戳字符串 *return value: 无 {{anchor:print}} **void print(const char * msg)** *function: 实时打印字符串 *parameters: - [i]const char * msg: 消息字符串 *return value: 无