diff --git a/aos/common/logging/logging.h b/aos/common/logging/logging.h
index ca2594b..a149d39 100644
--- a/aos/common/logging/logging.h
+++ b/aos/common/logging/logging.h
@@ -174,16 +174,21 @@
 // The (int, int) specialization works around the issue that the compiler
 // will not instantiate the template version of the function on values of
 // unnamed enum type.
-#define DEFINE_CHECK_OP_IMPL(name, op)                              \
-  template <typename T1, typename T2>                               \
-  inline void LogImpl##name(const T1 &v1, const T2 &v2,             \
-                            const char *exprtext) {                 \
-    if (!__builtin_expect(v1 op v2, 1)) {                           \
-      LOG(FATAL, "CHECK(%s) failed\n", exprtext);                   \
-    }                                                               \
-  }                                                                 \
-  inline void LogImpl##name(int v1, int v2, const char *exprtext) { \
-    ::aos::LogImpl##name<int, int>(v1, v2, exprtext);               \
+#define DEFINE_CHECK_OP_IMPL(name, op)                                       \
+  template <typename T1, typename T2>                                        \
+  inline void LogImpl##name(const T1 &v1, const T2 &v2,                      \
+                            const char *exprtext) {                          \
+    if (!__builtin_expect(v1 op v2, 1)) {                                    \
+      log_do(FATAL,                                                          \
+             LOG_SOURCENAME ": " STRINGIFY(__LINE__) ": CHECK(%s) failed\n", \
+             exprtext);                                                      \
+      fprintf(stderr, "log_do(FATAL) fell through!!!!!\n");                  \
+      printf("see stderr\n");                                                \
+      abort();                                                               \
+    }                                                                        \
+  }                                                                          \
+  inline void LogImpl##name(int v1, int v2, const char *exprtext) {          \
+    ::aos::LogImpl##name<int, int>(v1, v2, exprtext);                        \
   }
 
 // We use the full name Check_EQ, Check_NE, etc. in case the file including
