| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #include "Logging.h"
- #include <stdarg.h>
- #include <stdio.h>
- #include <syslog.h>
- #include <iostream>
- namespace Logging {
- void OpenLog()
- {
- openlog(NULL, LOG_CONS | LOG_NDELAY | LOG_PID, LOG_USER);
- }
- void CloseLog()
- {
- closelog();
- }
- void SetLogMask(Severity::type severity)
- {
- int level = static_cast<int>(severity);
- setlogmask(LOG_UPTO(level));
- switch (level)
- {
- case LOG_EMERG:
- Syslog(LOG_EMERG, "LogMask set to LOG_EMERG\n");
- break;
- case LOG_ALERT:
- Syslog(LOG_ALERT, "LogMask set to LOG_ALERT\n");
- break;
- case LOG_CRIT:
- Syslog(LOG_CRIT, "LogMask set to LOG_CRIT\n");
- break;
- case LOG_ERR:
- Syslog(LOG_ERR, "LogMask set to LOG_ERR\n");
- break;
- case LOG_WARNING:
- Syslog(LOG_WARNING, "LogMask set to LOG_WARNING\n");
- break;
- case LOG_NOTICE:
- Syslog(LOG_NOTICE, "LogMask set to LOG_NOTICE\n");
- break;
- case LOG_INFO:
- Syslog(LOG_NOTICE, "LogMask set to LOG_INFO\n");
- break;
- case LOG_DEBUG:
- Syslog(LOG_NOTICE, "LogMask set to LOG_DEBUG\n");
- break;
- }
- }
- void Log(Severity::type severity, const std::string& message)
- {
- if (severity > Severity::Error)
- std::cout << message << std::endl;
- else
- std::cerr << message << std::endl;
- Syslog(static_cast<int>(severity), "%s", message.c_str());
- }
- void Syslog(int level, const char *format, ...)
- {
- va_list args;
- va_start(args, format);
- vsyslog(level, format, args);
- if (level == LOG_DEBUG)
- printf(" ");
- vprintf(format, args);
- va_end(args);
- }
- } // namespace Logging
|