====== 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: 无