一个简单的C99实现的日志库
将**log.c和log.h**添加到现有项目中,并与其一起编译。该库提供了6个类似函数的宏用于记录日志:
log_trace(const char *fmt, ...);
log_debug(const char *fmt, ...);
log_info(const char *fmt, ...);
log_warn(const char *fmt, ...);
log_error(const char *fmt, ...);
log_fatal(const char *fmt, ...);
每个函数都接受一个printf格式字符串,后跟其他参数:
log_trace("Hello %s", "world")
结果是将给定格式的行打印到stderr:
20:18:26 TRACE src/main.c:11: Hello world
可以通过将true
传递给log_set_quiet()
函数来启用安静模式。当启用此模式时,库将不会向stderr
输出任何内容,但仍会写入文件和回调(如果已设置)。
可以使用log_set_level()
函数设置当前的日志级别。低于给定级别的所有日志都不会被写入stderr
。默认级别为LOG_TRACE
,即不忽略任何日志。
可以使用log_add_fp()
函数将一个或多个文件指针提供给库,以便将日志写入这些文件。输出到文件的数据格式如下:
2047-03-11 20:18:26 TRACE src/main.c:11: Hello world
忽略低于给定level
的任何消息。如果库无法添加文件指针,则返回小于零的值。
可以使用log_add_callback()
函数将一个或多个回调函数提供给库,回调函数将被调用并传入日志数据。回调函数接收一个log_Event
结构体,其中包含line
行号、filename
文件名、fmt
字符串、va
printf va_list、level
和给定的udata
。
如果日志将从多个线程中写入,可以设置锁函数。如果应获取锁,则该函数传递布尔值true
,如果应释放锁,则传递布尔值false
,以及给定的udata
值。
将给定的日志级别名称作为字符串返回。
如果使用-DLOG_USE_COLOR
编译库,则在打印时将使用ANSI颜色转义代码。
此库是自由软件,您可以在MIT许可下重新分发或修改它。有关详情,请参阅LICENSE。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。