void SetLog(const CStdString& strConfigFilePath)
{
char strTemp[MAX_PATH] = {0};
// 读取日志路径
GetPrivateProfileString("log-setting", "LogPathName", m_strModulePath.c_str(), strTemp, MAX_PATH, strConfigFilePath) ;
if (0x2 == errno)
{
throw runtime_error ("配置文件没有找到") ;
}
m_filename = strTemp ;
memset (strTemp, 0, MAX_PATH) ;
// 读取日志名字
GetPrivateProfileString("log-setting", "LogFileName", m_strModuleName.c_str(), strTemp, MAX_PATH, strConfigFilePath) ;
m_filename += strTemp ;
m_LogName = strTemp ;
// 获取日志文件名字的前缀
m_filenamePrefix = m_filename ;
memset (strTemp, 0, MAX_PATH) ;
// 获取最大日志文件编号
GetMaxLogNo () ;
// 将日志文件的名字拼上编号
_i64toa (m_nLastMaxNo, strTemp, 10) ;
m_filename += strTemp ;
m_filename += ".log" ;
memset (strTemp, 0, MAX_PATH) ;
// 读取日志大小,默认为10MB
GetPrivateProfileString("log-setting", "LogSize", "10485760", strTemp, MAX_PATH, strConfigFilePath) ;
m_maxFileSize = atol (strTemp) ;
memset (strTemp, 0, MAX_PATH) ;
// 读取日志级别
GetPrivateProfileString("log-setting", "LogLevel", "ALL_LOG_LEVEL", strTemp, MAX_PATH, strConfigFilePath) ;
m_LogLevel = strTemp ;
memset (strTemp, 0, MAX_PATH) ;
// 读取是否立即刷新
GetPrivateProfileString("log-setting", "LogIMFlush", "TRUE", strTemp, MAX_PATH, strConfigFilePath) ;
if (!strcmp(strTemp, "FALSE") || !strcmp(strTemp, "false"))
{
m_immediateFlush = FALSE ;
}
else
{
// 只要不是FLASE,就把置为TRUE,不管配置文件里有没有写错
m_immediateFlush = TRUE ;
}
memset (strTemp, 0, MAX_PATH) ;
// 读取硬盘剩余多少时就不写日志了,默认为100MB
GetPrivateProfileString("log-setting", "RemainMemorry", "100", strTemp, MAX_PATH, strConfigFilePath) ;
int nRemainMemorry = atoi (strTemp) ;
m_RemainMemorry = (__int64)nRemainMemorry * 1024 * 1024 ;
memset (strTemp, 0, MAX_PATH) ;
}
读取配置文件
最新推荐文章于 2024-08-28 16:24:46 发布