#define _LOG(f, level, s) f("[::"level"] ["__FILE__":%s:%.0f] %s", __FUNC__, __LINE__, s)
#define LOG_FATAL(...) _LOG_FATAL(strcat("", __VA_ARGS__))
#define _LOG(f, level, s) f("[::"level"] ["__FILE__":%s:%.0f] %s", __FUNC__, __LINE__, s)
#define LOG_FATAL(...) _LOG_FATAL(strcat("", __VA_ARGS__))