littlebot
Published on 2025-04-12 / 1 Visits
0

【源码】基于C语言的SQLite日志记录工具

项目简介

本工具是基于C语言开发的简单日志记录实用工具,借助SQLite数据库存储日志,为大量程序配置和输入数据集的日志记录提供更灵活方案,避免传统fprintf日志记录方式的代码冗余和管理难题,支持标准SQL查询提取日志信息,且性能较高。

项目的主要特性和功能

  1. 简单设计:提供简洁直观的API,无需担心配置、命名空间等复杂问题,也无需了解SQLite C API或SQL细节。
  2. 多表存储:一个日志文件可包含多个log表,每次初始化会创建一个新的以当前时间戳命名的log表。
  3. 日志级别控制:定义六种日志级别,可在运行时动态设置全局日志级别,灵活控制日志记录范围。
  4. 便捷视图:每个log表关联5个视图,可按日志级别过滤,方便浏览日志。
  5. 多线程安全:SQLite采用默认的序列化线程模式,可直接供多线程安全使用。

安装使用步骤

前提条件

确保已安装以下软件: - bash或兼容的shell - clanggcc编译器 - 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】