colorize log output

This commit is contained in:
2023-12-31 13:17:12 +09:00
parent 24971d4c8d
commit 37deb780ef
4 changed files with 29 additions and 19 deletions

View File

@@ -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

View File

@@ -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
View 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"

View File

@@ -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);