项目简介
本工具是基于C语言开发的简单日志记录实用工具,借助SQLite数据库存储日志,为大量程序配置和输入数据集的日志记录提供更灵活方案,避免传统fprintf
日志记录方式的代码冗余和管理难题,支持标准SQL查询提取日志信息,且性能较高。
项目的主要特性和功能
- 简单设计:提供简洁直观的API,无需担心配置、命名空间等复杂问题,也无需了解SQLite C API或SQL细节。
- 多表存储:一个日志文件可包含多个
log
表,每次初始化会创建一个新的以当前时间戳命名的log
表。 - 日志级别控制:定义六种日志级别,可在运行时动态设置全局日志级别,灵活控制日志记录范围。
- 便捷视图:每个
log
表关联5个视图,可按日志级别过滤,方便浏览日志。 - 多线程安全:SQLite采用默认的序列化线程模式,可直接供多线程安全使用。
安装使用步骤
前提条件
确保已安装以下软件:
- bash
或兼容的shell
- clang
或gcc
编译器
- git
- make
编译构建
项目提供基于Bash的构建工具build.sh
,使用以下命令获取帮助:
bash
cd ~/sqlite-logger/scripts
./build.sh --help
常见构建命令如下:
- 检查环境:./build.sh --check-env
- 构建默认增量调试静态库:./build.sh
- 清理并重新构建:./build.sh --clean
- 构建调试版本:./build.sh --debug
- 构建发布版本:./build.sh --release
- 构建共享库:./build.sh --with-shared-libs
- 自定义日志条目缓存大小:./build.sh --with-log-entry-cache-size=512
- 运行代码质量检查(cppcheck):./build.sh --analyze=cppcheck
- 运行单元测试:./build.sh --with-unit-testing
- 构建SDK:./build.sh --with-sdk
使用示例
```c void main(void) { int32_t result = SL_Initialize("./my_log_file.sqlite3"); if (result == SL_RESULT_SUCCESS) result = SL_SetLogLevel(eSL_LogLevel_Diagnostic); if (result == SL_RESULT_SUCCESS) result = SL_Log("This is a log message", eSL_LogLevel_Info, FILE, FUNCTION, LINE, "My tag", "Supplemental data goes here"); else fprintf(stderr, "SL_Log failed with result %s.\n", SL_ResultString(result));
if (result == SL_RESULT_SUCCESS)
result = SL_LOG_WARNING_MESSAGE("This is a warning message",
"Another tag", NULL);
(void) SL_Terminate();
return 0;
} ```
API参考
sqlite_logger.h
头文件有详细文档说明,可通过以下命令生成API参考文档:
bash
./build.sh --with-documentation
生成的HTML文档位于docs/html
目录下,可在浏览器中打开index.html
查看。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】