XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_log.c 文件参考
#include "xf_log.h"
#include <stdarg.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h>
xf_log.c 的引用(Include)关系图:

浏览源代码.

结构体

struct  _xf_log_filter_t
 
struct  _xf_log_obj_t
 

宏定义

#define PL_CSI_START   "\033["
 
#define PL_CSI_END   "\033[0m"
 
#define xf_log_strlen(s)   strlen(s)
 
#define xf_log_vsprintf(buffer, maxlen, fmt, args)   vsnprintf(buffer, maxlen, fmt, args)
 

类型定义

typedef enum _xf_log_color_t xf_log_color_t
 
typedef struct _xf_log_filter_t xf_log_filter_t
 
typedef struct _xf_log_obj_t xf_log_obj_t
 

枚举

enum  _xf_log_color_t {
  XF_LOG_COLOR_NULL = 0x00 , XF_LOG_COLOR_BLACK = '0' , XF_LOG_COLOR_RED , XF_LOG_COLOR_GREEN ,
  XF_LOG_COLOR_YELLOW , XF_LOG_COLOR_BLUE , XF_LOG_COLOR_MAGENTA , XF_LOG_COLOR_CYAN ,
  XF_LOG_COLOR_WHITE , XF_LOG_COLOR_MAX
}
 

函数

static size_t xf_log_vprintf (xf_log_out_t log_out, void *arg, const char *format, va_list va)
 
static size_t xf_log_color_format (int log_obj_id, uint8_t level, const char *tag, const char *file, uint32_t line, const char *func, const char *fmt, va_list va)
 
int xf_log_register_obj (xf_log_out_t out_func, void *user_args)
 注册log后端是输出到哪里,其最大值受到 XF_LOG_OBJ_MAX 的限制
 
void xf_log_set_filter_enable (int log_obj_id)
 启用过滤器
 
void xf_log_set_filter_disable (int log_obj_id)
 禁用过滤器
 
void xf_log_set_filter_colorful_enable (int log_obj_id)
 开启彩色显示
 
void xf_log_set_filter_colorful_disable (int log_obj_id)
 关闭彩色显示
 
void xf_log_set_filter_is_blacklist (int log_obj_id)
 设置过滤器为黑名单(其内容将被过滤)
 
void xf_log_set_filter_is_whitelist (int log_obj_id)
 设置过滤器为白名单(仅其内容将被暴露)
 
void xf_log_set_filter_tag (int log_obj_id, const char *tag)
 设置过滤器的标签过滤
 
void xf_log_set_filter_level (int log_obj_id, uint8_t level)
 设置过滤器的等级过滤
 
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)
 显示文件函数等信息的最小等级
 
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打印函数
 
size_t xf_log_printf (const char *format,...)
 朴实无华的打印函数
 
static void find_args_from_index (va_list *va, size_t index)
 
static size_t xf_log_printf_out (xf_log_out_t log_out, void *arg, const char *format,...)
 

变量

static const char s_lvl_to_prompt []
 
static const uint8_t s_lvl_to_color []
 
static xf_log_obj_t s_log_obj [XF_LOG_OBJ_NUM] = {0}
 
static xf_log_time_func_t s_log_time_func = NULL
 

详细描述

作者
cangyu (sky.k.nosp@m.irto.nosp@m.@qq.c.nosp@m.om)
版本
0.1
日期
2024-10-09

在文件 xf_log.c 中定义.

宏定义说明

◆ PL_CSI_START

#define PL_CSI_START   "\033["

在文件 xf_log.c19 行定义.

◆ PL_CSI_END

#define PL_CSI_END   "\033[0m"

在文件 xf_log.c20 行定义.

◆ xf_log_strlen

#define xf_log_strlen (   s)    strlen(s)

在文件 xf_log.c30 行定义.

◆ xf_log_vsprintf

#define xf_log_vsprintf (   buffer,
  maxlen,
  fmt,
  args 
)    vsnprintf(buffer, maxlen, fmt, args)

在文件 xf_log.c35 行定义.

类型定义说明

◆ xf_log_color_t

◆ xf_log_filter_t

◆ xf_log_obj_t

typedef struct _xf_log_obj_t xf_log_obj_t

枚举类型说明

◆ _xf_log_color_t

枚举值
XF_LOG_COLOR_NULL 
XF_LOG_COLOR_BLACK 
XF_LOG_COLOR_RED 
XF_LOG_COLOR_GREEN 
XF_LOG_COLOR_YELLOW 
XF_LOG_COLOR_BLUE 
XF_LOG_COLOR_MAGENTA 
XF_LOG_COLOR_CYAN 
XF_LOG_COLOR_WHITE 
XF_LOG_COLOR_MAX 

在文件 xf_log.c40 行定义.

函数说明

◆ xf_log_vprintf()

static size_t xf_log_vprintf ( xf_log_out_t  log_out,
void *  arg,
const char *  format,
va_list  va 
)
static

在文件 xf_log.c269 行定义.

◆ xf_log_color_format()

static size_t xf_log_color_format ( int  log_obj_id,
uint8_t  level,
const char *  tag,
const char *  file,
uint32_t  line,
const char *  func,
const char *  fmt,
va_list  va 
)
static

在文件 xf_log.c456 行定义.

◆ xf_log_register_obj()

int xf_log_register_obj ( xf_log_out_t  out_func,
void *  user_args 
)

注册log后端是输出到哪里,其最大值受到 XF_LOG_OBJ_MAX 的限制

参数
out_func后端输出函数, 如果减少IO操作,可以考虑使用异步缓冲
user_args传入的参数,会在 out_func 中被调用
返回
int -1:失败, >=0:注册成功后返回的id

在文件 xf_log.c118 行定义.

◆ find_args_from_index()

static void find_args_from_index ( va_list *  va,
size_t  index 
)
static

在文件 xf_log.c262 行定义.

◆ xf_log_printf_out()

static size_t xf_log_printf_out ( xf_log_out_t  log_out,
void *  arg,
const char *  format,
  ... 
)
static

在文件 xf_log.c446 行定义.

变量说明

◆ s_lvl_to_prompt

const char s_lvl_to_prompt[]
static
初始值:
= {
'\0',
'U',
'E',
'W',
'I',
'D',
'V',
}

在文件 xf_log.c88 行定义.

◆ s_lvl_to_color

const uint8_t s_lvl_to_color[]
static
初始值:
= {
}
@ XF_LOG_COLOR_BLUE
Definition xf_log.c:46
@ XF_LOG_COLOR_NULL
Definition xf_log.c:41
@ XF_LOG_COLOR_RED
Definition xf_log.c:43
@ XF_LOG_COLOR_GREEN
Definition xf_log.c:44
@ XF_LOG_COLOR_YELLOW
Definition xf_log.c:45
@ XF_LOG_COLOR_CYAN
Definition xf_log.c:48

在文件 xf_log.c99 行定义.

◆ s_log_obj

xf_log_obj_t s_log_obj[XF_LOG_OBJ_NUM] = {0}
static

在文件 xf_log.c110 行定义.

◆ s_log_time_func

xf_log_time_func_t s_log_time_func = NULL
static

在文件 xf_log.c112 行定义.