11 clock_gettime(CLOCK_MONOTONIC, &ts);
12 return ts.tv_sec * 1000ULL + ts.tv_nsec / 1000000ULL;
15static void uart_write(
const char *str,
size_t len,
void *arg)
18 for (
size_t i = 0; i < len; ++i) {
24static void file_write(
const char *str,
size_t len,
void *arg)
26 const char *file = (
const char *)arg;
27 FILE *fp = fopen(file,
"a+");
28 fwrite(str, 1, len, fp);
34 const char *name =
"skldfjaslkdfjaslkdfj;asldfja;sldfjasljdflksjdfl;kaj;dlfja;lskdjf;alskjdfaljlasdflj;";
52 xf_log(
XF_LOG_LVL_USER,
TAG, __FILE__, __LINE__, __func__,
"Hello, %.5s, date: %d, pi: %f!\n", name, date, pi);
53 xf_log(
XF_LOG_LVL_ERROR,
TAG,
"file1.c", __LINE__, __func__,
"Hello, %s, date: %d, pi: %f!\n", name, date, pi);
54 xf_log(
XF_LOG_LVL_WARN,
TAG, __FILE__, __LINE__, __func__,
"Hello, %s, date: %d, pi: %f!\n", name, date, pi);
55 xf_log(
XF_LOG_LVL_INFO,
TAG,
"file2.c", __LINE__, __func__,
"Hello, %s, date: %d, pi: %f!\n", name, date, pi);
56 xf_log(
XF_LOG_LVL_DEBUG,
TAG, __FILE__, __LINE__, __func__,
"Hello, %s, date: %d, pi: %f!\n", name, date, pi);
57 xf_log(
XF_LOG_LVL_VERBOSE,
TAG,
"file3.c", __LINE__, __func__,
"Hello, %s, date: %d, pi: %f!\n", name, date, pi);
66 XF_LOGU(
TAG,
"Hello, %s, date: %d, pi: %f!", name, date, pi);
67 XF_LOGE(
TAG,
"Hello, %s, date: %d, pi: %f!", name, date, pi);
68 XF_LOGW(
TAG,
"Hello, %s, date: %d, pi: %f!", name, date, pi);
69 XF_LOGI(
TAG,
"Hello, %s, date: %d, pi: %f!", name, date, pi);
70 XF_LOGD(
TAG,
"Hello, %s, date: %d, pi: %f!", name, date, pi);
71 XF_LOGV(
TAG,
"Hello, %s, date: %d, pi: %f!", name, date, pi);
73 xf_log_printf(
"Hello, %s, date: %d, pi: %f!\n", name, date, pi);
void xf_log_set_filter_enable(int log_obj_id)
启用过滤器
void xf_log_set_time_func(xf_log_time_func_t log_time_func)
设置log的时间戳打印函数
size_t xf_log(uint8_t level, const char *tag, const char *file, uint32_t line, const char *func, const char *fmt,...)
log打印函数
void xf_log_set_filter_file(int log_obj_id, const char *file)
设置过滤器的文件过滤
void xf_log_set_info_level(int log_obj_id, uint8_t level)
显示文件函数等信息的最小等级
#define xf_log_level(level, tag, fmt,...)
void xf_log_set_filter_colorful_disable(int log_obj_id)
关闭彩色显示
void xf_log_set_filter_is_blacklist(int log_obj_id)
设置过滤器为黑名单(其内容将被过滤)
#define XF_LOG_LVL_VERBOSE
uint32_t get_current_time_ms(void)
static void file_write(const char *str, size_t len, void *arg)
static void uart_write(const char *str, size_t len, void *arg)
int xf_log_register_obj(xf_log_out_t out_func, void *user_args)
注册log后端是输出到哪里,其最大值受到 XF_LOG_OBJ_MAX 的限制
#define XF_LOGI(tag, format,...)
#define XF_LOGE(tag, format,...)
#define XF_LOGW(tag, format,...)
#define XF_LOGU(tag, format,...)
#define XF_LOGV(tag, format,...)
#define XF_LOGD(tag, format,...)
#define xf_log_printf(format,...)