|
@@ -1,4 +1,5 @@
|
|
|
#include "Logging.h"
|
|
#include "Logging.h"
|
|
|
|
|
+#include <StringAlgorithm.h>
|
|
|
#include <stdarg.h>
|
|
#include <stdarg.h>
|
|
|
#include <stdio.h>
|
|
#include <stdio.h>
|
|
|
#include <syslog.h>
|
|
#include <syslog.h>
|
|
@@ -9,7 +10,7 @@ namespace Logging {
|
|
|
|
|
|
|
|
void OpenLog()
|
|
void OpenLog()
|
|
|
{
|
|
{
|
|
|
- openlog(NULL, LOG_CONS | LOG_NDELAY | LOG_PID, LOG_USER);
|
|
|
|
|
|
|
+ openlog(NULL, LOG_NDELAY | LOG_PID, LOG_USER);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void CloseLog()
|
|
void CloseLog()
|
|
@@ -25,55 +26,49 @@ void SetLogMask(Severity::type severity)
|
|
|
switch (level)
|
|
switch (level)
|
|
|
{
|
|
{
|
|
|
case LOG_EMERG:
|
|
case LOG_EMERG:
|
|
|
- Syslog(LOG_EMERG, "LogMask set to LOG_EMERG\n");
|
|
|
|
|
|
|
+ Log(Severity::Emergency, "LogMask set to Severity::Emergency\n");
|
|
|
break;
|
|
break;
|
|
|
case LOG_ALERT:
|
|
case LOG_ALERT:
|
|
|
- Syslog(LOG_ALERT, "LogMask set to LOG_ALERT\n");
|
|
|
|
|
|
|
+ Log(Severity::Alert, "LogMask set to Severity::Alert\n");
|
|
|
break;
|
|
break;
|
|
|
case LOG_CRIT:
|
|
case LOG_CRIT:
|
|
|
- Syslog(LOG_CRIT, "LogMask set to LOG_CRIT\n");
|
|
|
|
|
|
|
+ Log(Severity::Critical, "LogMask set to Severity::Critical\n");
|
|
|
break;
|
|
break;
|
|
|
case LOG_ERR:
|
|
case LOG_ERR:
|
|
|
- Syslog(LOG_ERR, "LogMask set to LOG_ERR\n");
|
|
|
|
|
|
|
+ Log(Severity::Error, "LogMask set to Severity::Error\n");
|
|
|
break;
|
|
break;
|
|
|
case LOG_WARNING:
|
|
case LOG_WARNING:
|
|
|
- Syslog(LOG_WARNING, "LogMask set to LOG_WARNING\n");
|
|
|
|
|
|
|
+ Log(Severity::Warning, "LogMask set to Severity::Warning\n");
|
|
|
break;
|
|
break;
|
|
|
case LOG_NOTICE:
|
|
case LOG_NOTICE:
|
|
|
- Syslog(LOG_NOTICE, "LogMask set to LOG_NOTICE\n");
|
|
|
|
|
|
|
+ Log(Severity::Notice, "LogMask set to Severity::Notice\n");
|
|
|
break;
|
|
break;
|
|
|
case LOG_INFO:
|
|
case LOG_INFO:
|
|
|
- Syslog(LOG_NOTICE, "LogMask set to LOG_INFO\n");
|
|
|
|
|
|
|
+ Log(Severity::Notice, "LogMask set to Severity::Info\n");
|
|
|
break;
|
|
break;
|
|
|
case LOG_DEBUG:
|
|
case LOG_DEBUG:
|
|
|
- Syslog(LOG_NOTICE, "LogMask set to LOG_DEBUG\n");
|
|
|
|
|
|
|
+ Log(Severity::Notice, "LogMask set to Severity::Debug\n");
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void Log(Severity::type severity, const std::string& message)
|
|
void Log(Severity::type severity, const std::string& message)
|
|
|
{
|
|
{
|
|
|
- if (severity > Severity::Error)
|
|
|
|
|
- std::cout << message << std::endl;
|
|
|
|
|
- else
|
|
|
|
|
- std::cerr << message << std::endl;
|
|
|
|
|
|
|
+ bool error = (severity < Severity::Warning);
|
|
|
|
|
+ bool debug = (severity == Severity::Debug);
|
|
|
|
|
+ std::ostream& output = error? std::cerr: std::cout;
|
|
|
|
|
|
|
|
- Syslog(static_cast<int>(severity), "%s", message.c_str());
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-void Syslog(int level, const char *format, ...)
|
|
|
|
|
-{
|
|
|
|
|
- va_list args;
|
|
|
|
|
- va_start(args, format);
|
|
|
|
|
|
|
+ bool newline = StringAlgorithm::ends_with(message, "\n");
|
|
|
|
|
|
|
|
- vsyslog(level, format, args);
|
|
|
|
|
|
|
+ if (debug)
|
|
|
|
|
+ output << " ";
|
|
|
|
|
|
|
|
- if (level == LOG_DEBUG)
|
|
|
|
|
- printf(" ");
|
|
|
|
|
|
|
+ output << message;
|
|
|
|
|
|
|
|
- vprintf(format, args);
|
|
|
|
|
|
|
+ if (!newline)
|
|
|
|
|
+ output << std::endl;
|
|
|
|
|
|
|
|
- va_end(args);
|
|
|
|
|
|
|
+ syslog(static_cast<int>(severity), "%s", message.c_str());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
} // namespace Logging
|
|
} // namespace Logging
|