aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/log.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/log.h')
-rw-r--r--src/nvim/log.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/nvim/log.h b/src/nvim/log.h
index c6a033c634..1fb15e3503 100644
--- a/src/nvim/log.h
+++ b/src/nvim/log.h
@@ -1,7 +1,9 @@
#pragma once
+#include <stdbool.h>
+#include <stdio.h>
+
#include "auto/config.h"
-#include "nvim/log_defs.h" // IWYU pragma: export
#include "nvim/macros_defs.h"
// USDT probes. Example invocation:
@@ -20,6 +22,35 @@
#endif
// uncrustify:on
+#define LOGLVL_DBG 1
+#define LOGLVL_INF 2
+#define LOGLVL_WRN 3
+#define LOGLVL_ERR 4
+
+#define LOG(level, ...) logmsg((level), NULL, __func__, __LINE__, true, __VA_ARGS__)
+
+#ifdef NVIM_LOG_DEBUG
+# define DLOG(...) logmsg(LOGLVL_DBG, NULL, __func__, __LINE__, true, __VA_ARGS__)
+# define DLOGN(...) logmsg(LOGLVL_DBG, NULL, __func__, __LINE__, false, __VA_ARGS__)
+# define ILOG(...) logmsg(LOGLVL_INF, NULL, __func__, __LINE__, true, __VA_ARGS__)
+# define ILOGN(...) logmsg(LOGLVL_INF, NULL, __func__, __LINE__, false, __VA_ARGS__)
+#else
+# define DLOG(...)
+# define DLOGN(...)
+# define ILOG(...)
+# define ILOGN(...)
+#endif
+
+#define WLOG(...) logmsg(LOGLVL_WRN, NULL, __func__, __LINE__, true, __VA_ARGS__)
+#define WLOGN(...) logmsg(LOGLVL_WRN, NULL, __func__, __LINE__, false, __VA_ARGS__)
+#define ELOG(...) logmsg(LOGLVL_ERR, NULL, __func__, __LINE__, true, __VA_ARGS__)
+#define ELOGN(...) logmsg(LOGLVL_ERR, NULL, __func__, __LINE__, false, __VA_ARGS__)
+
+#ifdef HAVE_EXECINFO_BACKTRACE
+# define LOG_CALLSTACK() log_callstack(__func__, __LINE__)
+# define LOG_CALLSTACK_TO_FILE(fp) log_callstack_to_file(fp, __func__, __LINE__)
+#endif
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "log.h.generated.h"
#endif