diff --git a/src/logging/logging.c b/src/logging/logging.c
index bfd77584f85631d704fe620bb238be355d1a27b0..a842770ae9ade0e173aef3832ee2a01f6dbae107 100644
--- a/src/logging/logging.c
+++ b/src/logging/logging.c
@@ -144,6 +144,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 4ded5f2637a0a71cfffb5a4e1cfb84fb2c2a3650..35a8f4e4d14c34aa5cfadc5c38c1cd854233a3d7 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);