--- smsdaemon/Logger.cpp 2008/12/10 22:02:28 175 +++ smsdaemon/Logger.cpp 2010/04/29 18:04:10 694 @@ -18,7 +18,9 @@ { string _logFile; - enum LogDest + std::vector logBuffer; + + enum LogDest { LogFile, LogSyslog, @@ -30,24 +32,24 @@ void initLog() { Common* cmn = Common::instance(); - string logmethod = cmn->GetConfigfile()->GetValue("smsdaemon","log"); - if (logmethod == "syslog") + string logmethod = cmn->GetConfigfile()->GetValue("smsdaemon","log",""); + if (logmethod == "syslog") { logger = LogSyslog; openlog("smsdaemon", 0 , LOG_DAEMON); - } + } else if (logmethod == "logfile") { logger = LogFile; - } + } else { cerr << "Invalid config file setting for 'log' : " << logmethod << endl; exit(1); } - if (cmn->isDebug) + if (cmn->isDebug) { logger = LogStdout; } @@ -66,14 +68,17 @@ localtime_r(&t, &now); ostringstream out; - if (logger == LogFile || logger == LogStdout) - { - out << Months[ now.tm_mon ] << " " << setw(2) << setfill('0') << now.tm_mday; - out << " " << setw(2) << setfill('0') << now.tm_hour; - out << ":" << setw(2) << setfill('0') << now.tm_min; - out << ":" << setw(2) << setfill('0') << now.tm_sec; - out << " " << msg << endl; + out << Months[ now.tm_mon ] << " " << setw(2) << setfill('0') << now.tm_mday; + out << " " << setw(2) << setfill('0') << now.tm_hour; + out << ":" << setw(2) << setfill('0') << now.tm_min; + out << ":" << setw(2) << setfill('0') << now.tm_sec; + out << " " << msg << endl; + + logBuffer.push_back( out.str() ); + + if (logger == LogFile || logger == LogStdout) + { if (cmn->isDaemon && _logFile != "" && cmn->daemonized) { seteuid(0); @@ -91,7 +96,7 @@ cout << out.str(); cout.flush(); } - } + } else // logSyslog { syslog(LOG_INFO, "%s", msg.c_str());