/[projects]/smsdaemon/Logger.cpp
ViewVC logotype

Diff of /smsdaemon/Logger.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 175 by torben, Wed Dec 10 22:02:28 2008 UTC revision 695 by torben, Thu Apr 29 18:18:18 2010 UTC
# Line 18  namespace Logger Line 18  namespace Logger
18  {  {
19          string _logFile;          string _logFile;
20    
21          enum LogDest          std::vector<std::string> logBuffer;
22    
23            enum LogDest
24          {          {
25                  LogFile,                  LogFile,
26                  LogSyslog,                  LogSyslog,
# Line 30  namespace Logger Line 32  namespace Logger
32          void initLog()          void initLog()
33          {          {
34                  Common* cmn = Common::instance();                  Common* cmn = Common::instance();
35                  string logmethod = cmn->GetConfigfile()->GetValue("smsdaemon","log");                  string logmethod = cmn->GetConfigfile()->GetValue("smsdaemon","log","");
36                  if (logmethod == "syslog")                  if (logmethod == "syslog")
37                  {                  {
38                          logger = LogSyslog;                          logger = LogSyslog;
39    
40                          openlog("smsdaemon", 0 , LOG_DAEMON);                          openlog("smsdaemon", 0 , LOG_DAEMON);
41                  }                  }
42                  else if (logmethod == "logfile")                  else if (logmethod == "logfile")
43                  {                  {
44                          logger = LogFile;                          logger = LogFile;
45                  }                  }
46                  else                  else
47                  {                  {
48                          cerr << "Invalid config file setting for 'log' : " << logmethod << endl;                          cerr << "Invalid config file setting for 'log' : " << logmethod << endl;
49                          exit(1);                          exit(1);
50                  }                  }
51    
52                  if (cmn->isDebug)                  if (cmn->isDebug)
53                  {                  {
54                          logger = LogStdout;                          logger = LogStdout;
55                  }                  }
# Line 66  namespace Logger Line 68  namespace Logger
68                  localtime_r(&t, &now);                  localtime_r(&t, &now);
69    
70                  ostringstream out;                  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;  
71    
72                    out << Months[ now.tm_mon ] << " " << setw(2) << setfill('0') << now.tm_mday;
73                    out << " " << setw(2) << setfill('0') << now.tm_hour;
74                    out << ":" << setw(2) << setfill('0') << now.tm_min;
75                    out << ":" << setw(2) << setfill('0') << now.tm_sec;
76                    out << "  " << msg << endl;
77    
78                    logBuffer.push_back( out.str() );
79    
80                    if (logger == LogFile || logger == LogStdout)
81                    {
82                          if (cmn->isDaemon && _logFile != "" && cmn->daemonized)                          if (cmn->isDaemon && _logFile != "" && cmn->daemonized)
83                          {                          {
84                                  seteuid(0);                                  seteuid(0);
# Line 91  namespace Logger Line 96  namespace Logger
96                                  cout << out.str();                                  cout << out.str();
97                                  cout.flush();                                  cout.flush();
98                          }                          }
99                  }                  }
100                  else  // logSyslog                  else  // logSyslog
101                  {                  {
102                          syslog(LOG_INFO, "%s", msg.c_str());                          syslog(LOG_INFO, "%s", msg.c_str());
103                  }                  }
104          }          }
105    
106            std::string getLog()
107            {
108                    std::ostringstream oss;
109                    for (unsigned i=0; i<logBuffer.size(); i++) {
110                            oss << logBuffer[i];
111                    }
112    
113                    return oss.str();
114            }
115  }  }

Legend:
Removed from v.175  
changed lines
  Added in v.695

  ViewVC Help
Powered by ViewVC 1.1.20