summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mts/MTS_Logger.h4
-rw-r--r--src/MTS_Logger.cpp19
2 files changed, 22 insertions, 1 deletions
diff --git a/include/mts/MTS_Logger.h b/include/mts/MTS_Logger.h
index a1e88a2..e203199 100644
--- a/include/mts/MTS_Logger.h
+++ b/include/mts/MTS_Logger.h
@@ -116,7 +116,9 @@ namespace MTS {
FILE_ONLY,
SYSLOG_ONLY,
STDOUT_AND_FILE,
- STDOUT_AND_SYSLOG
+ STDOUT_AND_SYSLOG,
+ STDERR_ONLY,
+ STDERR_AND_SYSLOG
};
static int getPrintLevel();
diff --git a/src/MTS_Logger.cpp b/src/MTS_Logger.cpp
index 93775fe..1be2a0f 100644
--- a/src/MTS_Logger.cpp
+++ b/src/MTS_Logger.cpp
@@ -124,6 +124,12 @@ void Logger::printMessage(const int32_t& level, const char* label, const char* f
::printf("\n");
break;
+ case Logger::PrintMode::STDERR_ONLY:
+ fprintf(stderr, "%s|%s|", MTS::Text::time(MTS::System::timeMicros()).c_str(), label);
+ vfprintf(stderr, format, argptr);
+ fprintf(stderr, "\n");
+ break;
+
case Logger::PrintMode::FILE_ONLY:
fprintf(m_pFile, "%s|%s| ", MTS::Text::time(MTS::System::timeMicros()).c_str(), label);
vfprintf(m_pFile, format, argptr);
@@ -166,6 +172,19 @@ void Logger::printMessage(const int32_t& level, const char* label, const char* f
}
break;
+ case Logger::PrintMode::STDERR_AND_SYSLOG: {
+ if (level <= Logger::PrintLevel::TRACE_LEVEL) {
+ va_list argptr2;
+ va_copy(argptr2, argptr);
+ vsyslog(syslogPrintLevelConversion(level), format, argptr2);
+ va_end(argptr2);
+ }
+ fprintf(stderr, "%s|%s|", MTS::Text::time(MTS::System::timeMicros()).c_str(), label);
+ vfprintf(stderr, format, argptr);
+ fprintf(stderr, "\n");
+ }
+ break;
+
case Logger::PrintMode::NO_PRINTING:
default:
break;