diff --git a/src/logging/logging.c b/src/logging/logging.c
index 1da0adecca6e0110ecd2917c6d977e162ee1330f..8747570d2178a048d2c467660f4a9617cce0429c 100644
--- a/src/logging/logging.c
+++ b/src/logging/logging.c
@@ -145,6 +145,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 e1fcf4d730108454c125309123a07bf2011425b6..3dc449a13a54bf2d6bfff5a9278ef1a6e04b2f29 100644
--- a/src/logging/logging.h
+++ b/src/logging/logging.h
@@ -63,6 +63,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);