colorize log output
This commit is contained in:
@@ -6,11 +6,6 @@ set(CMAKE_C_STANDARD 23)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
if (NOT PROJECT_BINARY_DIR MATCHES "^${PROJECT_SOURCE_DIR}")
|
||||
message(FATAL_ERROR "build dir must be inside of source dir")
|
||||
endif()
|
||||
string(LENGTH "${PROJECT_SOURCE_DIR}" PROJECT_DIR_LEN)
|
||||
|
||||
include(tool/meta.cmake)
|
||||
|
||||
# ---- thirdparty import
|
||||
@@ -23,10 +18,6 @@ target_include_directories(nf7config
|
||||
${PROJECT_SOURCE_DIR}
|
||||
${NF7_GENERATED_DIR}
|
||||
)
|
||||
target_compile_definitions(nf7config
|
||||
INTERFACE
|
||||
NF7_PROJECT_DIR_LEN=${PROJECT_DIR_LEN}
|
||||
)
|
||||
target_compile_options(nf7config INTERFACE
|
||||
$<$<CXX_COMPILER_ID:MSVC>:
|
||||
/W4
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
add_library(nf7util)
|
||||
target_sources(nf7util
|
||||
PUBLIC
|
||||
ansi.h
|
||||
array.h
|
||||
buffer.h
|
||||
log.h
|
||||
|
||||
9
util/ansi.h
Normal file
9
util/ansi.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// No copyright
|
||||
#pragma once
|
||||
|
||||
#define NF7UTIL_ANSI_RESET "\x1b[0m"
|
||||
#define NF7UTIL_ANSI_BOLD "\x1b[1m"
|
||||
|
||||
#define NF7UTIL_ANSI_BLUE "\x1b[34m"
|
||||
#define NF7UTIL_ANSI_YELLOW "\x1b[33m"
|
||||
#define NF7UTIL_ANSI_RED "\x1b[31m"
|
||||
29
util/log.h
29
util/log.h
@@ -11,43 +11,52 @@
|
||||
|
||||
#include <uv.h>
|
||||
|
||||
#include "util/ansi.h"
|
||||
|
||||
|
||||
#define NF7UTIL_LOG_PREFIX_DEBUG "DBG"
|
||||
#define NF7UTIL_LOG_PREFIX_INFO \
|
||||
NF7UTIL_ANSI_BOLD NF7UTIL_ANSI_BLUE "INF" NF7UTIL_ANSI_RESET
|
||||
#define NF7UTIL_LOG_PREFIX_WARN \
|
||||
NF7UTIL_ANSI_BOLD NF7UTIL_ANSI_YELLOW "WRN" NF7UTIL_ANSI_RESET
|
||||
#define NF7UTIL_LOG_PREFIX_ERROR \
|
||||
NF7UTIL_ANSI_BOLD NF7UTIL_ANSI_RED "ERR" NF7UTIL_ANSI_RESET
|
||||
|
||||
#define NF7UTIL_LOG_CURRENT_FILE \
|
||||
((const char*) __FILE__ + NF7_PROJECT_DIR_LEN)
|
||||
|
||||
#define nf7util_log(level, file, line, func, fmt, ...) \
|
||||
printf(level "|%s:%" PRIu64 "|%s|" fmt "\n", file, (uint64_t) line, func __VA_OPT__(,) __VA_ARGS__)
|
||||
#define nf7util_log_sugar(level, ...) \
|
||||
nf7util_log(level, NF7UTIL_LOG_CURRENT_FILE, __LINE__, __func__, __VA_ARGS__)
|
||||
nf7util_log(level, __FILE__, __LINE__, __func__, __VA_ARGS__)
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
# define nf7util_log_debug(...) \
|
||||
nf7util_log_sugar("DBG", __VA_ARGS__)
|
||||
nf7util_log_sugar(NF7UTIL_LOG_PREFIX_DEBUG, __VA_ARGS__)
|
||||
#else
|
||||
# define nf7util_log_debug(fmt, ...) do { } while (0)
|
||||
#endif
|
||||
|
||||
#define nf7util_log_info(...) \
|
||||
nf7util_log_sugar("INF", __VA_ARGS__)
|
||||
nf7util_log_sugar(NF7UTIL_LOG_PREFIX_INFO, __VA_ARGS__)
|
||||
#define nf7util_log_warn(...) \
|
||||
nf7util_log_sugar("WRN", __VA_ARGS__)
|
||||
nf7util_log_sugar(NF7UTIL_LOG_PREFIX_WARN, __VA_ARGS__)
|
||||
#define nf7util_log_error(...) \
|
||||
nf7util_log_sugar("ERR", __VA_ARGS__)
|
||||
nf7util_log_sugar(NF7UTIL_LOG_PREFIX_ERROR, __VA_ARGS__)
|
||||
|
||||
|
||||
// ---- libuv utils
|
||||
#define nf7util_log_uv(ret) \
|
||||
nf7util_log_uv_((ret), NF7UTIL_LOG_CURRENT_FILE, __LINE__, __func__)
|
||||
nf7util_log_uv_((ret), __FILE__, __LINE__, __func__)
|
||||
static inline int nf7util_log_uv_(
|
||||
int ret, const char* file, uint64_t line, const char* func) {
|
||||
if (0 != ret) {
|
||||
nf7util_log("INF", file, line, func, "uv api error: %s", uv_strerror(ret));
|
||||
nf7util_log(NF7UTIL_LOG_PREFIX_INFO,
|
||||
file, line, func, "uv api error: %s", uv_strerror(ret));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define nf7util_log_uv_assert(ret) \
|
||||
nf7util_log_uv_((ret), NF7UTIL_LOG_CURRENT_FILE, __LINE__, __func__)
|
||||
nf7util_log_uv_((ret), __FILE__, __LINE__, __func__)
|
||||
static inline int nf7util_log_uv_assert_(
|
||||
int ret, const char* file, uint64_t line, const char* func) {
|
||||
nf7util_log_uv_(ret, file, line, func);
|
||||
|
||||
Reference in New Issue
Block a user