neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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"