diff --git a/src/Lib/Log.hh b/src/Lib/Log.hh
index d588c568c9c8662ff1ae34c80939c5b57c9f3be3..fa109ff7092c484b947e46abfeebf3f1967b8bea 100644
--- a/src/Lib/Log.hh
+++ b/src/Lib/Log.hh
@@ -12,6 +12,14 @@
 #define VIVY_LOG_ERR(log)               VIVY_LOG_WITH_LEVEL(log, LogLevel::Error)
 #define VIVY_LOG_FATAL(log)             VIVY_LOG_WITH_LEVEL(log, LogLevel::Critical)
 
+#define VIVY_LOGGABLE_OBJECT(sink, name, logger)                             \
+    std::shared_ptr<Logger> logger = VIVY_GET_LOGGER(sink, name);            \
+    LogMessage logFatal() const noexcept { return VIVY_LOG_FATAL(logger); }  \
+    LogMessage logError() const noexcept { return VIVY_LOG_ERR(logger); }    \
+    LogMessage logWarning() const noexcept { return VIVY_LOG_WARN(logger); } \
+    LogMessage logInfo() const noexcept { return VIVY_LOG_INFO(logger); }    \
+    LogMessage logDebug() const noexcept { return VIVY_LOG_DEBUG(logger); }
+
 namespace Vivy
 {
 class VivyApplication;