#include "FrameworkServer.h" #include "framework/ConfigImp.h" #include "framework/QueryImp.h" #include "framework/StatImp.h" #include "framework/LogImp.h" #include "HttpImp.h" #include "HelloImp.h" using namespace std; vector> _clientStatData; vector> _serverStatData; FrameworkServer::~FrameworkServer() { } void FrameworkServer::initialize() { addServant(ServerConfig::Application + "." + ServerConfig::ServerName + ".ConfigObj"); addServant(ServerConfig::Application + "." + ServerConfig::ServerName + ".QueryObj"); addServant(ServerConfig::Application + "." + ServerConfig::ServerName + ".StatObj"); addServant(ServerConfig::Application + "." + ServerConfig::ServerName + ".LogObj"); string s; loadLogFormat("","",s); //日志路径 g_globe._log_path = _conf["/tars/log"]; //启动写线程 g_globe._group.start(TC_Common::strto(_conf["/tars/log"])); string prefix = TC_Common::lower(_conf.get("/tars/log","true")); g_globe._bIpPrefix = (prefix == "true") ? true : false; //增加对象 addServant(ServerConfig::Application + "." + ServerConfig::ServerName +".LogObj"); TARS_ADD_ADMIN_CMD_NORMAL("reloadLogFormat", FrameworkServer::loadLogFormat); } bool FrameworkServer::loadLogFormat(const string& command, const string& params, string& result) { TLOGDEBUG("FrameworkServer::loadLogFormat command:" << command << "|params:" << params << endl); try { TC_Config conf; conf.parseFile(ServerConfig::ConfigFile); vector vHourlist; map mLogType; try { string sHour = conf["/tars/log/format"]; vHourlist = TC_Common::sepstr(sHour,"|;,"); sort(vHourlist.begin(),vHourlist.end()); unique(vHourlist.begin(),vHourlist.end()); result = "loadLogFormat succ:" + sHour; TLOGDEBUG("FrameworkServer::loadLogFormat result:" << result << endl); DLOG<< "FrameworkServer::loadLogFormat result:" << result << endl; //hour=app.server.file|app2.server2.file2 map mType; if(conf.getDomainMap("/tars/log/logtype", mType)) { map::iterator it = mType.begin(); while(it != mType.end()) { vector vList = TC_Common::sepstr(it->second,"|;,"); for(size_t i = 0;i < vList.size();i++) { //app.server.file = hour mLogType[vList[i]] = it->first; TLOGDEBUG("FrameworkServer::loadLogFormat " << vList[i] << "|" << it->first << endl); DLOG<<"FrameworkServer::loadLogFormat " << vList[i] << "|" << it->first << endl; } it++; } } g_globe.update(vHourlist, mLogType); } catch(exception& e) { result += e.what(); TLOGERROR("FrameworkServer::loadLogFormat command:" << command << "|params:" << params << "|result:" << result << endl); } return true; } catch(exception &e) { result += e.what(); TLOGERROR("FrameworkServer::loadLogFormat command:" << command << "|params:" << params << "|result:" << result << endl); } return false; } void FrameworkServer::destroyApp() { } void FrameworkServer::run() { this->waitForShutdown(); } ///////////////////////////////////////////////////////////////// RpcServer::~RpcServer() { } void RpcServer::initialize() { addServant(ServerConfig::Application + "." + ServerConfig::ServerName + ".HelloObj"); addServant(ServerConfig::Application + "." + ServerConfig::ServerName + ".HttpObj"); addServantProtocol(ServerConfig::Application + "." + ServerConfig::ServerName + ".HttpObj", &TC_NetWorkBuffer::parseHttp); } ///////////////////////////////////////////////////////////////// void RpcServer::destroyApp() { } void RpcServer::run() { this->waitForShutdown(); }