|
@@ -8,6 +8,8 @@
|
|
|
|
|
|
|
|
namespace Logging {
|
|
namespace Logging {
|
|
|
|
|
|
|
|
|
|
+Severity::type loggingSeverity;
|
|
|
|
|
+
|
|
|
void OpenLog()
|
|
void OpenLog()
|
|
|
{
|
|
{
|
|
|
openlog(NULL, LOG_NDELAY | LOG_PID, LOG_USER);
|
|
openlog(NULL, LOG_NDELAY | LOG_PID, LOG_USER);
|
|
@@ -20,55 +22,55 @@ void CloseLog()
|
|
|
|
|
|
|
|
void SetLogMask(Severity::type severity)
|
|
void SetLogMask(Severity::type severity)
|
|
|
{
|
|
{
|
|
|
|
|
+ loggingSeverity = severity;
|
|
|
int level = static_cast<int>(severity);
|
|
int level = static_cast<int>(severity);
|
|
|
setlogmask(LOG_UPTO(level));
|
|
setlogmask(LOG_UPTO(level));
|
|
|
|
|
|
|
|
switch (level)
|
|
switch (level)
|
|
|
{
|
|
{
|
|
|
case LOG_EMERG:
|
|
case LOG_EMERG:
|
|
|
- Log(Severity::Emergency, "LogMask set to Severity::Emergency\n");
|
|
|
|
|
|
|
+ Log(Severity::Emergency, "LogMask set to Severity::Emergency");
|
|
|
break;
|
|
break;
|
|
|
case LOG_ALERT:
|
|
case LOG_ALERT:
|
|
|
- Log(Severity::Alert, "LogMask set to Severity::Alert\n");
|
|
|
|
|
|
|
+ Log(Severity::Alert, "LogMask set to Severity::Alert");
|
|
|
break;
|
|
break;
|
|
|
case LOG_CRIT:
|
|
case LOG_CRIT:
|
|
|
- Log(Severity::Critical, "LogMask set to Severity::Critical\n");
|
|
|
|
|
|
|
+ Log(Severity::Critical, "LogMask set to Severity::Critical");
|
|
|
break;
|
|
break;
|
|
|
case LOG_ERR:
|
|
case LOG_ERR:
|
|
|
- Log(Severity::Error, "LogMask set to Severity::Error\n");
|
|
|
|
|
|
|
+ Log(Severity::Error, "LogMask set to Severity::Error");
|
|
|
break;
|
|
break;
|
|
|
case LOG_WARNING:
|
|
case LOG_WARNING:
|
|
|
- Log(Severity::Warning, "LogMask set to Severity::Warning\n");
|
|
|
|
|
|
|
+ Log(Severity::Warning, "LogMask set to Severity::Warning");
|
|
|
break;
|
|
break;
|
|
|
case LOG_NOTICE:
|
|
case LOG_NOTICE:
|
|
|
- Log(Severity::Notice, "LogMask set to Severity::Notice\n");
|
|
|
|
|
|
|
+ Log(Severity::Notice, "LogMask set to Severity::Notice");
|
|
|
break;
|
|
break;
|
|
|
case LOG_INFO:
|
|
case LOG_INFO:
|
|
|
- Log(Severity::Notice, "LogMask set to Severity::Info\n");
|
|
|
|
|
|
|
+ Log(Severity::Notice, "LogMask set to Severity::Info");
|
|
|
break;
|
|
break;
|
|
|
case LOG_DEBUG:
|
|
case LOG_DEBUG:
|
|
|
- Log(Severity::Notice, "LogMask set to Severity::Debug\n");
|
|
|
|
|
|
|
+ Log(Severity::Notice, "LogMask set to Severity::Debug");
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void Log(Severity::type severity, const std::string& message)
|
|
void Log(Severity::type severity, const std::string& message)
|
|
|
{
|
|
{
|
|
|
- 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());
|
|
|
|
|
+
|
|
|
|
|
+ if (severity > loggingSeverity)
|
|
|
|
|
+ return;
|
|
|
|
|
|
|
|
- bool newline = StringAlgorithm::ends_with(message, "\n");
|
|
|
|
|
|
|
+ std::ostream& output = (severity < Severity::Warning)? std::cerr: std::cout;
|
|
|
|
|
|
|
|
- if (debug)
|
|
|
|
|
|
|
+ if (severity == Severity::Debug)
|
|
|
output << " ";
|
|
output << " ";
|
|
|
|
|
|
|
|
output << message;
|
|
output << message;
|
|
|
|
|
|
|
|
- if (!newline)
|
|
|
|
|
|
|
+ if (!StringAlgorithm::ends_with(message, "\n"))
|
|
|
output << std::endl;
|
|
output << std::endl;
|
|
|
-
|
|
|
|
|
- syslog(static_cast<int>(severity), "%s", message.c_str());
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
} // namespace Logging
|
|
} // namespace Logging
|