comparison OrthancServer/Sources/OrthancInitialization.cpp @ 4280:58e757ded69e

SetDcmtkVerbosity()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 04 Nov 2020 07:56:22 +0100
parents 0034f855c023
children d2f79a475b51
comparison
equal deleted inserted replaced
4279:ab4d015af660 4280:58e757ded69e
49 #include "Database/SQLiteDatabaseWrapper.h" 49 #include "Database/SQLiteDatabaseWrapper.h"
50 #include "OrthancConfiguration.h" 50 #include "OrthancConfiguration.h"
51 51
52 #include <OrthancServerResources.h> 52 #include <OrthancServerResources.h>
53 53
54 #include <dcmtk/dcmnet/dul.h> // For dcmDisableGethostbyaddr() 54 #include <dcmtk/dcmnet/dul.h> // For dcmDisableGethostbyaddr()
55 #include <dcmtk/dcmnet/diutil.h> // For DCM_dcmnetLogger
55 56
56 57
57 58
58 namespace Orthanc 59 namespace Orthanc
59 { 60 {
391 392
392 393
393 IStorageArea* CreateStorageArea() 394 IStorageArea* CreateStorageArea()
394 { 395 {
395 return CreateFilesystemStorage(); 396 return CreateFilesystemStorage();
396 } 397 }
398
399
400 static void SetDcmtkVerbosity(Verbosity verbosity)
401 {
402 // https://support.dcmtk.org/docs-dcmrt/classOFLogger.html#ae20bf2616f15313c1f089da2eefb8245
403 OFLogger::LogLevel level;
404
405 switch (verbosity)
406 {
407 case Verbosity_Default:
408 level = OFLogger::OFF_LOG_LEVEL; // No log
409 break;
410
411 case Verbosity_Verbose:
412 level = OFLogger::INFO_LOG_LEVEL; // This was the default log level in Orthanc <= 1.8.0
413 break;
414
415 case Verbosity_Trace:
416 level = OFLogger::DEBUG_LOG_LEVEL;
417 break;
418
419 default:
420 throw OrthancException(ErrorCode_ParameterOutOfRange);
421 }
422
423 OFLog::configure(level);
424 assert(dcmtk::log4cplus::Logger::getRoot().getChainedLogLevel() == level);
425
426 DCM_dcmdataLogger.setLogLevel(level);
427 DCM_dcmnetLogger.setLogLevel(level);
428 }
397 429
398 430
399 void SetGlobalVerbosity(Verbosity verbosity) 431 void SetGlobalVerbosity(Verbosity verbosity)
400 { 432 {
433 SetDcmtkVerbosity(verbosity);
434
401 switch (verbosity) 435 switch (verbosity)
402 { 436 {
403 case Verbosity_Default: 437 case Verbosity_Default:
404 Logging::EnableInfoLevel(false); 438 Logging::EnableInfoLevel(false);
405 Logging::EnableTraceLevel(false); 439 Logging::EnableTraceLevel(false);
459 break; 493 break;
460 494
461 default: 495 default:
462 throw OrthancException(ErrorCode_ParameterOutOfRange); 496 throw OrthancException(ErrorCode_ParameterOutOfRange);
463 } 497 }
498
499 if (category == Logging::LogCategory_DICOM)
500 {
501 SetDcmtkVerbosity(verbosity);
502 }
464 } 503 }
465 504
466 505
467 Verbosity GetCategoryVerbosity(Logging::LogCategory category) 506 Verbosity GetCategoryVerbosity(Logging::LogCategory category)
468 { 507 {