Salome HOME
[EDF27562] : Fix clustertest
[modules/kernel.git] / src / Basics / libSALOMELog.cxx
index fe0beeb2a355239ec7f13f1afedef8a2e98e9b92..b1d1332e61db1fc96f132ba8f6945b5b3feb0fb7 100644 (file)
 #include <string>
 #include <iostream>
 
+enum class VerbosityMode { undefined, nolog, withlog };
+
+static VerbosityMode isActivated = VerbosityMode::undefined;
+
 namespace SALOME
 {
 
@@ -43,7 +47,7 @@ namespace SALOME
 
   bool VerbosityActivated()
   {
-    auto isEnvVarSet = []() -> bool
+    auto isEnvVarSet = []() -> VerbosityMode
     {
       const char* envVar = std::getenv("SALOME_VERBOSE");
 
@@ -52,7 +56,7 @@ namespace SALOME
         try
         {
           const long long numValue = std::stoll(envVar);
-          return numValue > 0;
+          return numValue > 0?VerbosityMode::withlog:VerbosityMode::nolog;
         }
         catch(const std::exception& e)
         {
@@ -60,10 +64,16 @@ namespace SALOME
         }
       }
 
-      return false;
+      return VerbosityMode::nolog;
     };
 
-    static const bool isActivated = isEnvVarSet();
-    return isActivated;
+    if(isActivated == VerbosityMode::undefined)
+      isActivated = isEnvVarSet();
+    return isActivated == VerbosityMode::withlog;
+  }
+
+  void SetVerbosityActivated(bool flag)
+  {
+    isActivated = flag ? VerbosityMode::withlog:VerbosityMode::nolog;
   }
 }