diff --git a/MQ/hitbuilder/CMakeLists.txt b/MQ/hitbuilder/CMakeLists.txt
index 6fcd79e8f98a0d767dfb48cd041b3c38b80e7392..76064b8344ae67115bfd6f921a798d9610347b26 100644
--- a/MQ/hitbuilder/CMakeLists.txt
+++ b/MQ/hitbuilder/CMakeLists.txt
@@ -16,6 +16,7 @@ Set(SYSTEM_INCLUDE_DIRECTORIES
     ${ZeroMQ_INCLUDE_DIR}
     ${Boost_INCLUDE_DIR}
     ${FAIRROOT_INCLUDE_DIR}
+    ${FAIRLOGGER_INCLUDE_DIR}
     ${FAIRMQ_INCLUDE_DIR}
     ${FAIRMQ_INCLUDE_DIR}/options
     ${VMC_INCLUDE_DIRS}
diff --git a/MQ/unpacker/CbmDeviceUnpackTofStar2018.cxx b/MQ/unpacker/CbmDeviceUnpackTofStar2018.cxx
index ed15483345ea0e61000c71a19f217c6898a4a1c8..a4b09b8d44d9a1b4950443ad862e2c28351ac33d 100644
--- a/MQ/unpacker/CbmDeviceUnpackTofStar2018.cxx
+++ b/MQ/unpacker/CbmDeviceUnpackTofStar2018.cxx
@@ -415,10 +415,10 @@ Bool_t CbmDeviceUnpackTofStar2018::DoUnpack(const fles::Timeslice& ts,
       ngdpb::Message mess(ulData);
 
       /*
-         if( gLogger->IsLogNeeded(fair::mq::logger::DEBUG) )
+         if(fair::Logger::Logging(fair::Severity::debug)
          {
             mess.printDataCout();
-         } // if( gLogger->IsLogNeeded(fair::mq::logger::DEBUG) )
+         }
 	 */
 
       // Increment counter for different message types
diff --git a/core/base/utils/CbmGeometryUtils.cxx b/core/base/utils/CbmGeometryUtils.cxx
index 08586b0aab00677769c43cf0ee21a42cb0977402..463934bde7fc861ebfa6d0dce10f63c3a2f1de84 100644
--- a/core/base/utils/CbmGeometryUtils.cxx
+++ b/core/base/utils/CbmGeometryUtils.cxx
@@ -145,7 +145,7 @@ namespace Cbm {
 
       TGeoVolume* module1 = TGeoVolume::Import(filename, fVolumeName.Data());
 
-      if (gLogger->IsLogNeeded(fair::Severity::debug)) {
+      if (fair::Logger::Logging(fair::Severity::debug)) {
         LOG(debug) << "Information about imported volume:";
         module1->Print();
         LOG(debug);
diff --git a/core/detectors/sts/CbmStsSetup.cxx b/core/detectors/sts/CbmStsSetup.cxx
index c4759b0102d8a6bc3c350c4b009679fc3b28b79f..f88cc0b47bdcc0744a888277363c86bb0674a3eb 100644
--- a/core/detectors/sts/CbmStsSetup.cxx
+++ b/core/detectors/sts/CbmStsSetup.cxx
@@ -265,7 +265,7 @@ Bool_t CbmStsSetup::Init(const char* geoFile) {
   Int_t nStations = CreateStations();
   LOG(info) << GetName() << ": Setup contains " << nStations
             << " stations objects.";
-  if (FairLogger::GetLogger()->IsLogNeeded(fair::Severity::debug)) {
+  if (fair::Logger::Logging(fair::Severity::debug)) {
     auto it = fStations.begin();
     while (it != fStations.end()) {
       LOG(debug) << "  " << it->second->ToString();
diff --git a/core/detectors/trd/CbmTrdParSetGas.cxx b/core/detectors/trd/CbmTrdParSetGas.cxx
index 3716fa66c37cd10e77ad3759bb77a0d6cc6ace99..ae80e4aabf50e373be1d89c909a955bfb76a48ca 100644
--- a/core/detectors/trd/CbmTrdParSetGas.cxx
+++ b/core/detectors/trd/CbmTrdParSetGas.cxx
@@ -76,7 +76,7 @@ Bool_t CbmTrdParSetGas::getParams(FairParamList* l) {
     ((CbmTrdParModGas*) fModuleMap[moduleId[i]])->SetPidType(value[3]);
     ((CbmTrdParModGas*) fModuleMap[moduleId[i]])->SetFileName(pid);
 
-    //if ( FairLogger::GetLogger()->IsLogNeeded(DEBUG) ) fModuleMap[moduleId[i]]->Print();
+    //if (fair::Logger::Logging(fair::Severity::debug) fModuleMap[moduleId[i]]->Print();
   }
   so->Delete();
   delete so;
diff --git a/fles/star2019/eventbuilder/CbmStar2019EventBuilderEtofAlgo.cxx b/fles/star2019/eventbuilder/CbmStar2019EventBuilderEtofAlgo.cxx
index 112a624e09584eec6d67d9587e87e7ffd04fa97a..b41453dca10a38756dde93f107c8230f70ed8933 100644
--- a/fles/star2019/eventbuilder/CbmStar2019EventBuilderEtofAlgo.cxx
+++ b/fles/star2019/eventbuilder/CbmStar2019EventBuilderEtofAlgo.cxx
@@ -680,13 +680,13 @@ Bool_t CbmStar2019EventBuilderEtofAlgo::ProcessMs(const fles::Timeslice& ts,
 void CbmStar2019EventBuilderEtofAlgo::ProcessEpochCycle(uint64_t ulCycleData) {
   ULong64_t ulEpochCycleVal = ulCycleData & gdpbv100::kulEpochCycleFieldSz;
   /*
-   if( fuRawDataPrintMsgIdx < fuRawDataPrintMsgNb || gLogger->IsLogNeeded( fair::Severity::debug2 ) )
+   if( fuRawDataPrintMsgIdx < fuRawDataPrintMsgNb || fair::Logger::Logging(fair::Severity::debug2) )
    {
       LOG(info) << "CbmMcbm2018MonitorTof::ProcessEpochCyle => "
                  << Form( " TS %5d MS %3d In data 0x%016X Cycle 0x%016X",
                            fulCurrentTsIndex, fuCurrentMs, ulCycleData, ulEpochCycleVal );
       fuRawDataPrintMsgIdx ++;
-   } // if( fuRawDataPrintMsgIdx < fuRawDataPrintMsgNb || gLogger->IsLogNeeded( fair::Severity::debug2 ) )
+   }
 */
   if (!(ulEpochCycleVal == fvulCurrentEpochCycle[fuGdpbNr]
         || ulEpochCycleVal == fvulCurrentEpochCycle[fuGdpbNr] + 1)) {
diff --git a/fles/star2019/monitor/CbmStar2019MonitorTof.cxx b/fles/star2019/monitor/CbmStar2019MonitorTof.cxx
index eef1cd41c360680698ee150265a506974ea9987b..6e78960c77482c7cd7d53e888e1afb1b5c69dd2b 100644
--- a/fles/star2019/monitor/CbmStar2019MonitorTof.cxx
+++ b/fles/star2019/monitor/CbmStar2019MonitorTof.cxx
@@ -2049,10 +2049,10 @@ Bool_t CbmStar2019MonitorTof::DoUnpack(const fles::Timeslice& ts,
         gdpbv100::Message mess(ulData);
 
         if (fuRawDataPrintMsgIdx < fuRawDataPrintMsgNb
-            || gLogger->IsLogNeeded(fair::Severity::debug2)) {
+            || fair::Logger::Logging(fair::Severity::debug2)) {
           mess.printDataCout();
           fuRawDataPrintMsgIdx++;
-        }  // if( fuRawDataPrintMsgIdx < fuRawDataPrintMsgNb || gLogger->IsLogNeeded( fair::Severity::debug2 ) )
+        }
 
         // Increment counter for different message types
         // and fill the corresponding histogram
@@ -2444,7 +2444,7 @@ void CbmStar2019MonitorTof::ProcessEpochCycle(uint64_t ulCycleData) {
   uint64_t ulEpochCycleVal = ulCycleData & gdpbv100::kulEpochCycleFieldSz;
 
   if (fuRawDataPrintMsgIdx < fuRawDataPrintMsgNb
-      || gLogger->IsLogNeeded(fair::Severity::debug2)) {
+      || fair::Logger::Logging(fair::Severity::debug2)) {
     LOG(info) << "CbmMcbm2018MonitorTof::ProcessEpochCyle => "
               << Form(" TS %5lu MS %3lu In data 0x%016lX Cycle 0x%016lX",
                       fulCurrentTsIndex,
@@ -2452,7 +2452,7 @@ void CbmStar2019MonitorTof::ProcessEpochCycle(uint64_t ulCycleData) {
                       ulCycleData,
                       ulEpochCycleVal);
     fuRawDataPrintMsgIdx++;
-  }  // if( fuRawDataPrintMsgIdx < fuRawDataPrintMsgNb || gLogger->IsLogNeeded( fair::Severity::debug2 ) )
+  }
 
   for (uint32_t uGet4Index = 0; uGet4Index < fuNrOfGet4PerGdpb; uGet4Index++) {
     fuGet4Id = uGet4Index;
diff --git a/reco/detectors/tof/CbmTofFindTracks.cxx b/reco/detectors/tof/CbmTofFindTracks.cxx
index b681026c7818fe8aec01ee0a1d7d19eb8ec3ed5c..75fb022dd9a2b490863900e0ffccad50e873d0b5 100644
--- a/reco/detectors/tof/CbmTofFindTracks.cxx
+++ b/reco/detectors/tof/CbmTofFindTracks.cxx
@@ -1084,7 +1084,7 @@ Bool_t CbmTofFindTracks::WriteHistos() {
 
 // -----   Public method Exec   --------------------------------------------
 void CbmTofFindTracks::Exec(Option_t* opt) {
-  if (gLogger->IsLogNeeded(fair::Severity::debug)) {
+  if (fair::Logger::Logging(fair::Severity::debug)) {
     fDigiBdfPar->printParams();
   }
   if (!fEventsColl) {
diff --git a/sim/detectors/psd/CbmPsdMC.cxx b/sim/detectors/psd/CbmPsdMC.cxx
index 0e5cf56dc4f4e18757f6cba0a8f31fc42f3f3a0b..91ddd2c0903a9b5d7dbdc75d25011ffc835f5df1 100644
--- a/sim/detectors/psd/CbmPsdMC.cxx
+++ b/sim/detectors/psd/CbmPsdMC.cxx
@@ -117,7 +117,7 @@ void CbmPsdMC::ConstructGeometry() {
 
   // Add PSD to the geometry
   gGeoManager->GetTopVolume()->AddNode(psdVolume, 0, transformation);
-  if ( gLogger->IsLogNeeded(fair::Severity::debug) ) {
+  if (air::Logger::Logging(fair::Severity::debug)) {
     psdVolume->Print();
     transformation->Print();
   }
diff --git a/sim/detectors/sts/CbmStsDigitize.cxx b/sim/detectors/sts/CbmStsDigitize.cxx
index 507bf1315208157d2c6b12aaec3e1de75f5d6e20..a1c1649649dd9940b18c95b378997406afc92670 100644
--- a/sim/detectors/sts/CbmStsDigitize.cxx
+++ b/sim/detectors/sts/CbmStsDigitize.cxx
@@ -173,7 +173,7 @@ void CbmStsDigitize::Exec(Option_t* /*opt*/)
   ResetCounters();
 
   // --- For debug: status of analogue buffers
-  if (gLogger->IsLogNeeded(fair::Severity::debug)) {
+  if (fair::Logger::Logging(fair::Severity::debug)) {
     std::cout << std::endl;
     LOG(debug) << GetName() << ": " << BufferStatus();
   }
@@ -199,7 +199,9 @@ void CbmStsDigitize::Exec(Option_t* /*opt*/)
   LOG(debug) << GetName() << ": " << fNofSignalsF + fNofSignalsB << " signals generated ( " << fNofSignalsF << " / "
              << fNofSignalsB << " )";
   // --- For debug: status of analogue buffers
-  if (gLogger->IsLogNeeded(fair::Severity::debug)) { LOG(debug) << GetName() << ": " << BufferStatus(); }
+  if (fair::Logger::Logging(fair::Severity::debug)) {
+    LOG(debug) << GetName() << ": " << BufferStatus();
+  }
 
   // --- Readout time: in stream mode the time of the current event.
   // --- Analogue buffers will be digitised for signals at times smaller than
@@ -212,7 +214,9 @@ void CbmStsDigitize::Exec(Option_t* /*opt*/)
   ProcessAnalogBuffers(readoutTime);
 
   // --- Check status of analogue module buffers
-  if (gLogger->IsLogNeeded(fair::Severity::debug)) { LOG(debug) << GetName() << ": " << BufferStatus(); }
+  if (fair::Logger::Logging(fair::Severity::debug)) {
+    LOG(debug) << GetName() << ": " << BufferStatus();
+  }
 
   // --- Event log
   LOG(info) << left << setw(15) << GetName() << "[" << fixed << setprecision(3) << fTimer.RealTime() << " s]"
diff --git a/sim/transport/base/CbmStack.cxx b/sim/transport/base/CbmStack.cxx
index ac205486bc2de1ccce68f9aa8ae31e0fab2bab54..28d1536f7b193170862a00444388a4088be3f0bb 100644
--- a/sim/transport/base/CbmStack.cxx
+++ b/sim/transport/base/CbmStack.cxx
@@ -376,7 +376,7 @@ void CbmStack::Print(Option_t*) const {
   LOG(debug) << "Number of primaries        = " << fNPrimaries;
   LOG(debug) << "Total number of particles  = " << fNParticles;
   LOG(debug) << "Number of tracks in output = " << fNTracks;
-  if (FairLogger::GetLogger()->IsLogNeeded(fair::Severity::debug1)) {
+  if (fair::Logger::Logging(fair::Severity::debug1)) {
     for (Int_t iTrack = 0; iTrack < fNTracks; iTrack++) {
       LOG(debug1) << "MCTrack " << iTrack
                   << ((CbmMCTrack*) fTracks->At(iTrack))->ToString();