C/C++/Objective-C 日志记录功能模块

8 篇文章 0 订阅
刚写了一个Logger Module,适用语言 C/C++/Objective-C 以及其他兼容C的语言, 欢迎大家试用 ~_~ 

初始有3种级别:

WSLOG_LEVEL_COMMON     普通打印信息

WSLOG_LEVEL_WARNING    警告信息
WSLOG_LEVEL_ERROR      错误信息
    每种类别的 log 分别记录于不同文件。


具备功能:
1. 具有打印缓冲区,减少I/O次数,缓冲区大小可调
2. 可设置单个记录文件的大小,以及某类log的文件数量,循环更新
3. 采用 enum 和 array 结合,便于扩展 log level级别
4. 通过条件编译,轻松实现 console 打印 和 日志文件记录两种方式切换

详见:

https://github.com/winlin/GTCLogModule

GTCLogModule

This log module can be used by C/C++/Objective-C projects.

Features

  • high robustness and proformace
  • process/thread safe;
  • high configurable, include buffer size, log file numbers, log file size etc;
  • three default log level and easily to expand;
  • print buffer to reduce disk I/O times;
  • easily change stdout/stderr between log file just according to a #define macro;
  • detial document comments

Usage

It's very simple, you can learn from the test.c file.

    MITLogOpen("TestApp", "./logs");

    char dir[1024];
    getcwd(dir, sizeof(dir));
    MITLog_DetPrintf(MITLOG_LEVEL_COMMON, "%s", dir);

    // 1. usage in one thread demo
    // at first in main thread call MITLogOpen()
    MITLog_DetPuts(MITLOG_LEVEL_COMMON, "just have a try and feel the speed:write 3000000 messages");
    time_t starttime = time(NULL);
    for (int i=MITLOG_INDEX_COMM_FILE; i<=MITLOG_INDEX_ERROR_FILE; ++i) {
        for (int j=0; j < 1000000; ++j) {
            MITLogWrite(MITLOG_LEVEL_COMMON, "This is for common:%d", j);
            MITLogWrite(MITLOG_LEVEL_WARNING, "This is for warning:%d", j);
            MITLogWrite(MITLOG_LEVEL_ERROR, "This is for error:%d", j);
        }
    }
    time_t closetime = time(NULL);
    MITLog_DetPrintf(MITLOG_LEVEL_COMMON, "All time:%ld\n", closetime-starttime);
    // at last you should close the log module
    MITLogClose();

Winlin


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值