From 6d1afefe58898d8c476ede269e981fd1d1fd672a Mon Sep 17 00:00:00 2001
From: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Date: Tue, 5 Oct 2021 13:42:36 +0200
Subject: [PATCH] common: let StdoutLogger skip header, if desired

When StdoutLogger is used in combination with systemd, then header
becomes redundant.

Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
---
 common/log/StdoutLogger.cpp | 13 +++++++++----
 common/log/StdoutLogger.hpp |  6 +++++-
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/common/log/StdoutLogger.cpp b/common/log/StdoutLogger.cpp
index 609a999683..f1fd77ebb5 100644
--- a/common/log/StdoutLogger.cpp
+++ b/common/log/StdoutLogger.cpp
@@ -23,8 +23,8 @@ namespace log {
 //------------------------------------------------------------------------------
 // constructor
 //------------------------------------------------------------------------------
-StdoutLogger::StdoutLogger(const std::string &hostName, const std::string &programName):
-  Logger(hostName, programName, DEBUG) {
+StdoutLogger::StdoutLogger(const std::string &hostName, const std::string &programName, bool simple):
+  Logger(hostName, programName, DEBUG), m_simple(simple) {
 }
 
 //------------------------------------------------------------------------------
@@ -42,8 +42,13 @@ void StdoutLogger::prepareForFork() {}
 // writeMsgToUnderlyingLoggingSystem
 //------------------------------------------------------------------------------
 void StdoutLogger::writeMsgToUnderlyingLoggingSystem(const std::string &header, const std::string &body) {
-  const std::string headerPlusBody = header + body;
-  printf("%s\n", headerPlusBody.c_str());
+
+  if (m_simple) {
+      printf("%s\n", body.c_str());
+  }  else {
+      const std::string headerPlusBody = header + body;
+      printf("%s\n", headerPlusBody.c_str());
+  }
 }
 
 } // namespace log
diff --git a/common/log/StdoutLogger.hpp b/common/log/StdoutLogger.hpp
index 76d9aa9ba1..3cf15763c2 100644
--- a/common/log/StdoutLogger.hpp
+++ b/common/log/StdoutLogger.hpp
@@ -34,8 +34,9 @@ public:
    * @param hostName The name of the host to be prepended to every log message.
    * @param programName The name of the program to be prepended to every log
    * message.
+   * @param simple If true, then logging header is not included.
    */
-  StdoutLogger(const std::string &hostName, const std::string &programName);
+  StdoutLogger(const std::string &hostName, const std::string &programName, bool simple = false);
 
   /**
    * Destructor.
@@ -69,6 +70,9 @@ protected:
    */
   void writeMsgToUnderlyingLoggingSystem(const std::string &header, const std::string &body) override;
 
+private:
+    bool m_simple;
+
 }; // class StringLogger
 
 } // namespace log
-- 
GitLab