commit 45d42ff15d91da3e25f3e1f7a4bd0360af6e0f70
parent 9e4a681b7d219520306a8c08f62cf6206a191b05
Author: Kebigon <git@kebigon.xyz>
Date: Fri, 13 Aug 2021 19:16:54 +0900
Always flush stdout after printing a log line
Diffstat:
| M | log.h | | | 80 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------- |
1 file changed, 66 insertions(+), 14 deletions(-)
diff --git a/log.h b/log.h
@@ -30,39 +30,91 @@
#define LOG_LEVEL 4
#if LOG_LEVEL >= 4
-#define LOG_DEBUG(message) printf("[%s:%d] DEBUG: " message "\n", __FILE__, __LINE__)
+
+#define LOG_DEBUG(message) \
+ do \
+ { \
+ printf("[%s:%d] DEBUG: " message "\n", __FILE__, __LINE__); \
+ fflush(stdout); \
+ } while (0)
#define LOG_DEBUG_VA(message, ...) \
- printf("[%s:%d] DEBUG: " message "\n", __FILE__, __LINE__, __VA_ARGS__)
+ do \
+ { \
+ printf("[%s:%d] DEBUG: " message "\n", __FILE__, __LINE__, __VA_ARGS__); \
+ fflush(stdout); \
+ } while (0)
+
#else
+
#define LOG_DEBUG(message)
#define LOG_DEBUG_VA(message, ...)
+
#endif
#if LOG_LEVEL >= 3
-#define LOG_WARN(message) printf("[%s:%d] WARN: " message "\n", __FILE__, __LINE__)
-#define LOG_WARN_VA(message, ...) \
- printf("[%s:%d] WARN: " message "\n", __FILE__, __LINE__, __VA_ARGS__)
-#else
-#define LOG_WARN(message)
-#define LOG_WARN_VA(message, ...)
-#endif
-#if LOG_LEVEL >= 2
-#define LOG_INFO(message) printf("[%s:%d] INFO: " message "\n", __FILE__, __LINE__)
+#define LOG_INFO(message) \
+ do \
+ { \
+ printf("[%s:%d] INFO: " message "\n", __FILE__, __LINE__); \
+ fflush(stdout); \
+ } while (0)
#define LOG_INFO_VA(message, ...) \
- printf("[%s:%d] INFO: " message "\n", __FILE__, __LINE__, __VA_ARGS__)
+ do \
+ { \
+ printf("[%s:%d] INFO: " message "\n", __FILE__, __LINE__, __VA_ARGS__); \
+ fflush(stdout); \
+ } while (0)
+
#else
+
#define LOG_INFO(message)
#define LOG_INFO_VA(message, ...)
+
+#endif
+
+#if LOG_LEVEL >= 2
+
+#define LOG_WARN(message) \
+ do \
+ { \
+ printf("[%s:%d] WARN: " message "\n", __FILE__, __LINE__); \
+ fflush(stdout); \
+ } while (0)
+#define LOG_WARN_VA(message, ...) \
+ do \
+ { \
+ printf("[%s:%d] WARN: " message "\n", __FILE__, __LINE__, __VA_ARGS__); \
+ fflush(stdout); \
+ } while (0)
+
+#else
+
+#define LOG_WARN(message)
+#define LOG_WARN_VA(message, ...)
+
#endif
#if LOG_LEVEL >= 1
-#define LOG_ERROR(message) printf("[%s:%d] ERROR: " message "\n", __FILE__, __LINE__)
+
+#define LOG_ERROR(message) \
+ do \
+ { \
+ printf("[%s:%d] ERROR: " message "\n", __FILE__, __LINE__); \
+ fflush(stdout); \
+ } while (0)
#define LOG_ERROR_VA(message, ...) \
- printf("[%s:%d] ERROR: " message "\n", __FILE__, __LINE__, __VA_ARGS__)
+ do \
+ { \
+ printf("[%s:%d] ERROR: " message "\n", __FILE__, __LINE__, __VA_ARGS__); \
+ fflush(stdout); \
+ } while (0)
+
#else
+
#define LOG_ERROR(message)
#define LOG_ERROR_VA(message, ...)
+
#endif
void log_debug_globals();