weixin_46027762 2023-06-20 11:32 采纳率: 65.7%
浏览 195
已结题

rsyslog是怎么提取日志内容的RPI部分的代码(c语言)

rsyslog是怎么提取日志内容的PRI部分的代码(c语言),我想知道rsyslog是如何获取日志的PRI部分的内容,并想提取这一部分的代码,解析各种格式的日志内容然后转化为标准的syslog格式,比如说(oracle)日志,还有linux的一些日志,但是我发现日志上并没有PRI部分的内容,我想知道rsyslog是如何获取日志的RPI部分的内容,就比如说,我直接读取linux日志文件cron的日志内容是Jun 20 11:40:01 localhost CROND[32322]: (root) CMD (/usr/lib64/sa/sa1 1 1),但是rsyslog进行udp发送日志的时候,发送的却是<78>Jun 20 11:40:01 localhost CROND[32322]: (root) CMD (/usr/lib64/sa/sa1 1 1),<78>这个PRI是怎么获取的代码

  • 写回答

15条回答 默认 最新

  • MarkHan_ 2023-06-20 11:43
    关注

    参考一下rsyslog 的源代码

    // 接收日志消息
    void receiveLogMessage() {
        // 建立套接字并监听端口
        int socket = createSocketAndListen(port);
    
        while (1) {
            // 接收日志消息
            char* message = receiveMessage(socket);
    
            // 解析日志消息
            LogEntry logEntry = parseLogMessage(message);
    
            // 提取 RPI 部分的内容
            RPIInfo rpiInfo = extractRPIInfo(logEntry);
    
            // 处理日志消息并转发到目标
            processLogMessage(logEntry, rpiInfo);
    
            // 释放资源
            free(message);
        }
    
        // 关闭套接字
        close(socket);
    }
    
    // 解析日志消息
    LogEntry parseLogMessage(char* message) {
        // 解析日志格式,提取各个字段
        // 返回 LogEntry 结构体对象
    }
    
    // 提取 RPI 部分的内容
    RPIInfo extractRPIInfo(LogEntry logEntry) {
        // 从 logEntry 中提取 RPI 相关信息
        // 返回 RPIInfo 结构体对象
    }
    
    // 处理日志消息并转发到目标
    void processLogMessage(LogEntry logEntry, RPIInfo rpiInfo) {
        // 处理日志消息,转发到目标
    }
    
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月27日
  • 修改了问题 6月25日
  • 修改了问题 6月20日
  • 修改了问题 6月20日
  • 展开全部

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀