diff OrthancServer/Sources/OrthancInitialization.cpp @ 4281:d2f79a475b51

debug log for DCMTK SCU
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 04 Nov 2020 13:48:42 +0100
parents 58e757ded69e
children 6a39ca7083b9
line wrap: on
line diff
--- a/OrthancServer/Sources/OrthancInitialization.cpp	Wed Nov 04 07:56:22 2020 +0100
+++ b/OrthancServer/Sources/OrthancInitialization.cpp	Wed Nov 04 13:48:42 2020 +0100
@@ -399,32 +399,38 @@
 
   static void SetDcmtkVerbosity(Verbosity verbosity)
   {
+    // INFO_LOG_LEVEL was the DCMTK log level in Orthanc <= 1.8.0    
     // https://support.dcmtk.org/docs-dcmrt/classOFLogger.html#ae20bf2616f15313c1f089da2eefb8245
-    OFLogger::LogLevel level;
+
+    OFLogger::LogLevel dataLevel, networkLevel;
 
     switch (verbosity)
     {
       case Verbosity_Default:
-        level = OFLogger::OFF_LOG_LEVEL;  // No log
+        // Turn off logging in DCMTK core
+        dataLevel = OFLogger::OFF_LOG_LEVEL;
+        networkLevel = OFLogger::OFF_LOG_LEVEL;
         break;
 
       case Verbosity_Verbose:
-        level = OFLogger::INFO_LOG_LEVEL;  // This was the default log level in Orthanc <= 1.8.0
+        dataLevel = OFLogger::INFO_LOG_LEVEL;
+        networkLevel = OFLogger::INFO_LOG_LEVEL;
         break;
 
       case Verbosity_Trace:
-        level = OFLogger::DEBUG_LOG_LEVEL;
+        dataLevel = OFLogger::INFO_LOG_LEVEL;  // DEBUG here makes DCMTK too verbose to be useful
+        networkLevel = OFLogger::DEBUG_LOG_LEVEL;
         break;
 
       default:
         throw OrthancException(ErrorCode_ParameterOutOfRange);
     }
 
-    OFLog::configure(level);
-    assert(dcmtk::log4cplus::Logger::getRoot().getChainedLogLevel() == level);
+    OFLog::configure(dataLevel);
+    assert(dcmtk::log4cplus::Logger::getRoot().getChainedLogLevel() == dataLevel);
     
-    DCM_dcmdataLogger.setLogLevel(level);
-    DCM_dcmnetLogger.setLogLevel(level);
+    DCM_dcmdataLogger.setLogLevel(dataLevel);    // This seems to be implied by "OFLog::configure()"
+    DCM_dcmnetLogger.setLogLevel(networkLevel);  // This will display PDU in DICOM networking
   }