2024年3月30日发(作者:)

#include "FileOperation.h"

using namespace FrameWork;

LogSizeLimit::LogSizeLimit(const string iniFile) :

_iniFile(iniFile), changeFlag(true) {

}

LogSizeLimit::~LogSizeLimit() {

}

bool LogSizeLimit::start() {

pthread_t tid, changetid;

pthread_create(&tid, NULL, run, (void*) this);

pthread_create(&changetid, NULL, listenChanged, (void*) this);

return true;

}

bool LogSizeLimit::readConfig() {

//Clean map vars

map::iterator iter_tmp = _();

while (iter_tmp != _()) {

_(iter_tmp);

iter_tmp++;

}

//Clean map vars

iter_tmp = _();

while (iter_tmp != _()) {

_(iter_tmp);

iter_tmp++;

}

//Clean map vars

map >::iterator mvIter_tmp = _();

while (mvIter_tmp != _()) {

_(mvIter_tmp);

mvIter_tmp++;

}

if (!FileOperation::isExistFile(_iniFile)) {

Logger::GetInstance().Fatal("Can not find ini file : %s !",

_iniFile.c_str());

return false;

}

//Create ini file handling var.

IniConfigFile iniSet(_iniFile.c_str());

INT8 logPath[LogFilePathMaxLen] = { 0 };

INT8 logFileAttr[LogFileAttrMaxLen] = { 0 };

INT8 specialFile_1[LogFilePathMaxLen] = { 0 };

INT8 specialFileAttr_1[LogFileAttrMaxLen] = { 0 };

const INT8 *catelogBase = "catelog_";

const INT8 *limitBase = "logSizeLimit_";

const INT8 *specialFileBase = "specialFile_";

const INT8 *specialLimitBase = "specialFileSizeLimit_";

INT8 catelogCnt = '1';

bool isExist = true;

INT8 catelogIndex[32] = { 0 };

INT8 logSizeIndex[32] = { 0 };

while (isExist) {

memset(catelogIndex, 0, 32);

memset(logSizeIndex, 0, 32);

memset(logPath, 0, LogFilePathMaxLen);

memset(logFileAttr, 0, LogFileAttrMaxLen);

memcpy(catelogIndex, catelogBase, strlen(catelogBase));

memcpy(catelogIndex + strlen(catelogBase), &catelogCnt, 1);

memcpy(logSizeIndex, limitBase, strlen(limitBase));

memcpy(logSizeIndex + strlen(limitBase), &catelogCnt, 1);

//section key value

do {

if (iConfFile("LogSizeManage", catelogIndex, logPath,

LogFilePathMaxLen) != true) {

Logger::GetInstance().Error("Can not locate %s !",

catelogIndex);

isExist = false;

break;

} else