RDMA++
Loading...
Searching...
No Matches
debug.h
1#pragma once
2#include <chrono>
3#include <cstdio>
4#include <ctime>
5
6#ifndef SOURCE_PATH_LENGTH
7#define SOURCE_PATH_LENGTH 0
8#endif
9
10#define __RDMAPP_FILENAME__ (&__FILE__[SOURCE_PATH_LENGTH])
11
12namespace rdmapp {
13
14enum class LogLevel {
15 TRACE,
16 DEBUG,
17 INFO,
18 WARN,
19 ERROR,
20};
21
22}
23
24constexpr static inline rdmapp::LogLevel rdmapp_log_level =
25 rdmapp::LogLevel::DEBUG;
26
27#define RDMAPP_LOG_TRACE(msg, ...) \
28 do { \
29 if (rdmapp_log_level > rdmapp::LogLevel::TRACE) \
30 break; \
31 printf("[TRACE] [%s:%d] " msg "\n", __RDMAPP_FILENAME__, \
32 __LINE__ __VA_OPT__(, ) __VA_ARGS__); \
33 } while (0)
34
35#define RDMAPP_LOG_DEBUG(msg, ...) \
36 do { \
37 if (rdmapp_log_level > rdmapp::LogLevel::DEBUG) \
38 break; \
39 printf("[DEBUG] [%s:%d] " msg "\n", __RDMAPP_FILENAME__, \
40 __LINE__ __VA_OPT__(, ) __VA_ARGS__); \
41 } while (0)
42
43#define RDMAPP_LOG_INFO(msg, ...) \
44 do { \
45 if (rdmapp_log_level > rdmapp::LogLevel::INFO) \
46 break; \
47 printf("[INFO ] [%s:%d] " msg "\n", __RDMAPP_FILENAME__, \
48 __LINE__ __VA_OPT__(, ) __VA_ARGS__); \
49 } while (0)
50
51#define RDMAPP_LOG_ERROR(msg, ...) \
52 do { \
53 printf("[ERROR] [%s:%d] " msg "\n", __RDMAPP_FILENAME__, \
54 __LINE__ __VA_OPT__(, ) __VA_ARGS__); \
55 } while (0)