diff --git a/src/logging/logging.c b/src/logging/logging.c
index da0973f6dc2e3e348a75a4d9abf6aefa1f16cfa6..480cb341101ed8342148cbca9a44a74e0fd5c05b 100644
--- a/src/logging/logging.c
+++ b/src/logging/logging.c
@@ -134,6 +134,7 @@ void log_msg(const char *msg, enum cats_log_level loglevel);
 void log_msg_simple(const char *msg, enum cats_log_level loglevel);
 
 // logging wrapper function
+__attribute__ ((__format__ (__printf__, 2, 3)))
 void log_message(enum cats_log_level level, const char *fmt, ...)
 {
         if (level < internal_current_log_level) return;
diff --git a/src/logging/logging.h b/src/logging/logging.h
index f030add7e07b03272e51ac5ca0615a36f1d61f2e..d154a658ee2bff4c07c240b10d43b5d84ff1598d 100644
--- a/src/logging/logging.h
+++ b/src/logging/logging.h
@@ -62,6 +62,7 @@ void logging_set_mpi_rank(int mpi_world_rank);
 
 void logging_set_module_name(const char *name);
 
+__attribute__ ((__format__ (__printf__, 2, 3)))
 void log_message(enum cats_log_level level, const char *fmt, ...);
 
 enum cats_log_level get_log_level(void);