新增日志文件
更新时间: 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,…)