diff options
-rw-r--r-- | include/mts/MTS_Logger.h | 4 | ||||
-rw-r--r-- | src/MTS_Logger.cpp | 19 |
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; |