diff OrthancServer/Sources/OrthancInitialization.cpp @ 4273:0034f855c023

tuning log categories from command-line, and binary compat with orthanc framework 1.7.2
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 03 Nov 2020 12:24:50 +0100
parents b289a1234822
children 58e757ded69e
line wrap: on
line diff
--- a/OrthancServer/Sources/OrthancInitialization.cpp	Tue Nov 03 07:19:33 2020 +0100
+++ b/OrthancServer/Sources/OrthancInitialization.cpp	Tue Nov 03 12:24:50 2020 +0100
@@ -394,4 +394,89 @@
   {
     return CreateFilesystemStorage();
   }  
+
+
+  void SetGlobalVerbosity(Verbosity verbosity)
+  {
+    switch (verbosity)
+    {
+      case Verbosity_Default:
+        Logging::EnableInfoLevel(false);
+        Logging::EnableTraceLevel(false);
+        break;
+
+      case Verbosity_Verbose:
+        Logging::EnableInfoLevel(true);
+        Logging::EnableTraceLevel(false);
+        break;
+
+      case Verbosity_Trace:
+        Logging::EnableInfoLevel(true);
+        Logging::EnableTraceLevel(true);
+        break;
+
+      default:
+        throw OrthancException(ErrorCode_ParameterOutOfRange);
+    }
+  }
+
+  
+  Verbosity GetGlobalVerbosity()
+  {
+    if (Logging::IsTraceLevelEnabled())
+    {
+      return Verbosity_Trace;
+    }
+    else if (Logging::IsInfoLevelEnabled())
+    {
+      return Verbosity_Verbose;
+    }
+    else
+    {
+      return Verbosity_Default;
+    }
+  }
+
+  
+  void SetCategoryVerbosity(Logging::LogCategory category,
+                            Verbosity verbosity)
+  {
+    switch (verbosity)
+    {
+      case Verbosity_Default:
+        Logging::SetCategoryEnabled(Logging::LogLevel_INFO, category, false);
+        Logging::SetCategoryEnabled(Logging::LogLevel_TRACE, category, false);
+        break;
+
+      case Verbosity_Verbose:
+        Logging::SetCategoryEnabled(Logging::LogLevel_INFO, category, true);
+        Logging::SetCategoryEnabled(Logging::LogLevel_TRACE, category, false);
+        break;
+
+      case Verbosity_Trace:
+        Logging::SetCategoryEnabled(Logging::LogLevel_INFO, category, true);
+        Logging::SetCategoryEnabled(Logging::LogLevel_TRACE, category, true);
+        break;
+
+      default:
+        throw OrthancException(ErrorCode_ParameterOutOfRange);
+    }
+  }
+  
+
+  Verbosity GetCategoryVerbosity(Logging::LogCategory category)
+  {
+    if (Logging::IsCategoryEnabled(Logging::LogLevel_TRACE, category))
+    {
+      return Verbosity_Trace;
+    }
+    else if (Logging::IsCategoryEnabled(Logging::LogLevel_INFO, category))
+    {
+      return Verbosity_Verbose;
+    }
+    else
+    {
+      return Verbosity_Default;
+    }
+  }
 }