新增日志文件
更新时间: 2026/02/09
在Gitcode上查看源码

修改内容

需修改manifest中的rsyslog.conf与frame

rsyslog.conf

在rsyslog.conf文件中新增日志文件记录规则,定义服务的名称、日志等级和日志记录位置等 每个规则行由两部分组成,selector部分和action部分,这两部分由一个或多个空格或tab分隔,selector部分指定源和日志等级,action部分指定对应的操作 local7.=info action(type="omfile" file=FILE_PATH Template="t_common" FileCreateMode="0640") local socket(0-7) 保留,本地使用,.代表记录比后面高的消息等级,.=只记录后面的消息等级,.!不记录后面的消息等级

frame

在frame文件中新增日志记录的文件名称,文件大小,转存次数,可参考之前的日志记录进行修改。例如新增一个control.log的日志文件,大小为512k,转存次数为4。 注意:编号1,2,3需保持相同的名称

shell
/var/log/control.log{
    size = 512k
    compress
    copytruncate
    rotate 4
    sharedscripts
    prerotate
        /etc/prerotate.sh "$1"
        rm -f /var/log/control.log.1
    endscript
    postrotate
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
    lastaction
        chmod 0400 /var/log/control.log.*.gz 2> /dev/null || true
    endscript
}

另外须实现相应的日志记录函数,例如control_log

调用

  • 在对应的CMakeList.txt的target_link_libraries中添加“PUBLIC logging”;
  • 代码中包含日志头文件 #include “logging.h”
  • 代码中直接调用control_log("%s %s…", value1, value2,…)