log.h (1709B)
1 #pragma once 2 3 #include <stdbool.h> 4 #include <stdio.h> 5 6 #include "auto/config.h" 7 #include "nvim/macros_defs.h" 8 9 // USDT probes. Example invocation: 10 // NVIM_PROBE(nvim_foo_bar, 1, string.data); 11 #if defined(HAVE_SYS_SDT_H) 12 # include <sys/sdt.h> // IWYU pragma: keep 13 14 # define NVIM_PROBE(name, n, ...) STAP_PROBE##n(neovim, name, __VA_ARGS__) 15 #else 16 # define NVIM_PROBE(name, n, ...) 17 #endif 18 19 // uncrustify:off 20 #if NVIM_HAS_INCLUDE(<sanitizer/asan_interface.h>) 21 # include <sanitizer/asan_interface.h> // IWYU pragma: keep 22 #endif 23 // uncrustify:on 24 25 #define LOGLVL_DBG 1 26 #define LOGLVL_INF 2 27 #define LOGLVL_WRN 3 28 #define LOGLVL_ERR 4 29 30 #define LOG(level, ...) logmsg((level), NULL, __func__, __LINE__, true, __VA_ARGS__) 31 32 #ifdef NVIM_LOG_DEBUG 33 # define DLOG(...) logmsg(LOGLVL_DBG, NULL, __func__, __LINE__, true, __VA_ARGS__) 34 # define DLOGN(...) logmsg(LOGLVL_DBG, NULL, __func__, __LINE__, false, __VA_ARGS__) 35 # define ILOG(...) logmsg(LOGLVL_INF, NULL, __func__, __LINE__, true, __VA_ARGS__) 36 # define ILOGN(...) logmsg(LOGLVL_INF, NULL, __func__, __LINE__, false, __VA_ARGS__) 37 #else 38 # define DLOG(...) 39 # define DLOGN(...) 40 # define ILOG(...) 41 # define ILOGN(...) 42 #endif 43 44 #define WLOG(...) logmsg(LOGLVL_WRN, NULL, __func__, __LINE__, true, __VA_ARGS__) 45 #define WLOGN(...) logmsg(LOGLVL_WRN, NULL, __func__, __LINE__, false, __VA_ARGS__) 46 #define ELOG(...) logmsg(LOGLVL_ERR, NULL, __func__, __LINE__, true, __VA_ARGS__) 47 #define ELOGN(...) logmsg(LOGLVL_ERR, NULL, __func__, __LINE__, false, __VA_ARGS__) 48 49 #ifdef HAVE_EXECINFO_BACKTRACE 50 # define LOG_CALLSTACK() log_callstack(__func__, __LINE__) 51 # define LOG_CALLSTACK_TO_FILE(fp) log_callstack_to_file(fp, __func__, __LINE__) 52 #endif 53 54 #include "log.h.generated.h"