diff --git a/src/ice_transport.cpp b/src/ice_transport.cpp
index 7515a26a1b0aed1be3ca8ae5143d2b319a2ceb7a..514708a8dd87fed494a2dc77a9065b844b96b199 100644
--- a/src/ice_transport.cpp
+++ b/src/ice_transport.cpp
@@ -668,7 +668,7 @@ IceTransport::Impl::flushTimerHeapAndIoQueue()
 
     auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(
         std::chrono::steady_clock::now() - start);
-    JAMI_DBG("[ice:%p] Timer heap flushed after %ld ms", this, duration.count());
+    JAMI_DEBUG("[ice:{}] Timer heap flushed after {}", fmt::ptr(this), duration);
 
     return static_cast<int>(pj_timer_heap_count(config_.stun_cfg.timer_heap));
 }
diff --git a/src/logger.h b/src/logger.h
index 290b1ab534de04d7a525d5168929c874948abd46..37cfcdf80e905919c2a724ab3e8d34b1272d3d23 100644
--- a/src/logger.h
+++ b/src/logger.h
@@ -26,6 +26,7 @@
 //#define __STDC_FORMAT_MACROS 1
 #include <fmt/core.h>
 #include <fmt/format.h>
+#include <fmt/chrono.h>
 
 #include <cinttypes> // for PRIx64
 #include <cstdarg>
diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp
index ea12dea0c148b00a86f93dae1b4bfaf0f0bdfbce..9458bcddd4e349bd3bc73220d58302c9ae32bf62 100644
--- a/src/sip/sipcall.cpp
+++ b/src/sip/sipcall.cpp
@@ -1838,9 +1838,9 @@ SIPCall::addLocalIceAttributes()
         // resolution or other issues).
         auto duration = std::chrono::steady_clock::now() - start;
         if (duration > EXPECTED_ICE_INIT_MAX_TIME) {
-            JAMI_WARN("[call:%s] ICE initialization time was unexpectedly high (%ld ms)",
-                      getCallId().c_str(),
-                      std::chrono::duration_cast<std::chrono::milliseconds>(duration).count());
+            JAMI_WARNING("[call:{:s}] ICE initialization time was unexpectedly high ({})",
+                      getCallId(),
+                      std::chrono::duration_cast<std::chrono::milliseconds>(duration));
         }
     }