You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用log4c读取日志文件并将日志内容打印到终端

log4c日志文件读取展示终端解决方案

log4c本身仅提供日志写入能力,没有内置专门的日志文件读取API,你直接使用C语言标准库的文件操作接口即可实现需求,无需依赖log4c的额外接口,具体实现逻辑如下:

  • 先确认log4c配置中指定的日志输出文件路径,确保运行读取程序的账号对该文件有可读权限
  • 常规全量读取日志内容输出到终端的示例代码:
#include <stdio.h>
#include <stdlib.h>

// 替换为你实际的日志文件路径
#define LOG_PATH "/var/log/your_app.log"

int main() {
    char line_buf[2048];
    FILE* log_fd = fopen(LOG_PATH, "r");
    if (!log_fd) {
        perror("日志文件打开失败");
        return EXIT_FAILURE;
    }
    // 逐行读取输出到stdout
    while (fgets(line_buf, sizeof(line_buf), log_fd)) {
        fputs(line_buf, stdout);
    }
    fclose(log_fd);
    return EXIT_SUCCESS;
}
  • 若需要实现类似tail -f的实时日志展示效果,可以增加轮询判断逻辑:
    • 每次读取完文件内容后用ftell()记录当前文件偏移量
    • 间隔指定时长(如1s)后比对当前文件大小与记录的偏移量
    • 若文件有新增内容,调用fseek()跳转到记录的偏移量位置,继续读取新增内容输出
  • 如果你配置了log4c按大小/时间自动切割日志,需要额外按照切割规则匹配所有生成的日志分片,按需读取对应分片的内容即可

内容的提问来源于stack exchange,提问作者陈润泽

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:15:01