1 Star 1 Fork 2

田贝贝 / log.c

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

log.c

一个简单的C99实现的日志库

screenshot

使用方法

将**log.clog.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

log_set_quiet(bool enable)

可以通过将true传递给log_set_quiet()函数来启用安静模式。当启用此模式时,库将不会向stderr输出任何内容,但仍会写入文件和回调(如果已设置)。

log_set_level(int level)

可以使用log_set_level()函数设置当前的日志级别。低于给定级别的所有日志都不会被写入stderr。默认级别为LOG_TRACE,即不忽略任何日志。

log_add_fp(FILE *fp, int level)

可以使用log_add_fp()函数将一个或多个文件指针提供给库,以便将日志写入这些文件。输出到文件的数据格式如下:

2047-03-11 20:18:26 TRACE src/main.c:11: Hello world

忽略低于给定level的任何消息。如果库无法添加文件指针,则返回小于零的值。

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

可以使用log_add_callback()函数将一个或多个回调函数提供给库,回调函数将被调用并传入日志数据。回调函数接收一个log_Event结构体,其中包含line行号、filename文件名、fmt字符串、va printf va_list、level和给定的udata

log_set_lock(log_LockFn fn, void *udata)

如果日志将从多个线程中写入,可以设置锁函数。如果应获取锁,则该函数传递布尔值true,如果应释放锁,则传递布尔值false,以及给定的udata值。

const char* log_level_string(int level)

将给定的日志级别名称作为字符串返回。

LOG_USE_COLOR

如果使用-DLOG_USE_COLOR编译库,则在打印时将使用ANSI颜色转义代码。

许可证

此库是自由软件,您可以在MIT许可下重新分发或修改它。有关详情,请参阅LICENSE

Copyright (c) 2020 rxi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

一个在C99中实现的简单日志库 展开 收起
C/C++
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C/C++
1
https://gitee.com/tianbeibei/rxi_log.c.git
git@gitee.com:tianbeibei/rxi_log.c.git
tianbeibei
rxi_log.c
log.c
master

搜索帮助