cemu
载入中...
搜索中...
未找到
log.c 文件参考

日志库头文件实现 更多...

#include "log.h"
#include <time.h>

函数

static void stdout_callback (log_Event *ev)
 
static void file_callback (log_Event *ev)
 
static void lock (void)
 
static void unlock (void)
 
const char * log_level_string (int level)
 获取日志级别的字符串
 
void log_set_lock (log_LockFn fn, void *udata)
 设置日志锁
 
void log_set_level (int level)
 设置日志级别
 
void log_set_quiet (bool enable)
 设置日志是否静默
 
int log_add_callback (log_LogFn fn, void *udata, int level)
 添加日志回调
 
int log_add_fp (FILE *fp, int level)
 添加日志文件和级别
 
static void init_event (log_Event *ev, void *udata)
 
void log_log (int level, const char *file, int line, const char *fmt,...)
 日志输出
 

变量

static const char * level_strings []
 日志级别枚举字符串
 
static const char * level_colors []
 

详细描述

日志库头文件实现

作者
lancer (lance.nosp@m.rsta.nosp@m.dium@.nosp@m.163..nosp@m.com)
版本
0.1
日期
2024-01-08
注解
参考项目:Github | log.c

函数说明

◆ log_add_callback()

int log_add_callback ( log_LogFn fn,
void * udata,
int level )

添加日志回调

参数
fn日志锁回调函数,参考 log_LockFn
udata用户数据
level日志级别枚举类型,参考 log_Level
返回
int 是否成功添加日志文件
返回值
`0`成功 -1 失败

◆ log_add_fp()

int log_add_fp ( FILE * fp,
int level )

添加日志文件和级别

参数
fp文件指针
level日志级别枚举类型,参考 log_Level
返回
int 是否成功添加日志文件
返回值
`0`成功 -1 失败
注解
内部实现参考 log_add_callback

◆ log_level_string()

const char * log_level_string ( int level)

获取日志级别的字符串

参数
level日志级别枚举类型,参考 log_Level
返回
const char* 日志级别对应的字符串指针

◆ log_log()

void log_log ( int level,
const char * file,
int line,
const char * fmt,
... )

日志输出

参数
level日志级别枚举类型,参考 log_Level
file文件名
line文件行号
fmt格式化字符串
...其他参数

◆ log_set_level()

void log_set_level ( int level)

设置日志级别

参数
level日志级别枚举类型,参考 log_Level

◆ log_set_lock()

void log_set_lock ( log_LockFn fn,
void * udata )

设置日志锁

参数
fn日志锁回调函数,参考 log_LockFn
udata用户数据

◆ log_set_quiet()

void log_set_quiet ( bool enable)

设置日志是否静默

参数
enable布尔值:true 为静默,false 为不静默
注解
将日志库全局变量 L 中的 quiet 字段设置为 enable
  1. 对于同一段日志输出函数 log_info
    // 不设置静默模式
    log_info("hello");
    void log_set_quiet(bool enable)
    设置日志是否静默
    Definition log.c:106
    #define log_info(...)
    Definition log.h:133
    控制台输出:
    12:48:17 INFO src/main.c:26: Hello world!
    int main(int argc, char *argv[], char *envp[])
    主函数
    Definition cemu.c:30
  2. 若设置静默模式,日志不会输出到控制台:
    // 设置静默模式
    log_info("hello");

变量说明

◆ level_colors

const char* level_colors[]
static
初始值:
= {
ANSI_BRIGHT_BLUE, ANSI_CYAN, ANSI_GREEN, ANSI_YELLOW, ANSI_RED, ANSI_MAGENTA, ANSI_BRIGHT_GREEN, ANSI_BRIGHT_RED}

◆ level_strings

const char* level_strings[]
static
初始值:
= {
"TRAC", "DEBU", "INFO", "WARN", "ERRO", "FATA", "ASSE", "ASSE"}

日志级别枚举字符串

注解
对应日志枚举类型 log_Level