Syslog文件大小限制



我有一个使用syslog和logrotate的yocto映像。我的系统日志允许创建两个日志文件。一个用于调试消息,一个用于所有其他消息。我的调试日志文件将增长到200kb,然后将移动到debug.0。永远不会创建debug.1、debug.2等归档文件。这意味着我正在丢失数据。我将这个文件的logrotate设置为每天激活,大小为10MB。

syslog在哪里设置日志文件的最大文件大小?在我的构建中,我的syslog.conf是从busyboxappend.bb安装的,并且包含

#  /etc/syslog.conf     Configuration file for busybox's syslogd utility
*.debug     /home/root/.evcc_logs/debug
*.info      /var/log/info
*.info      /dev/console

busybox.bappend

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://evcc_kernel_features.cfg file://syslog.conf"
do_deploy() {
install -d ${D}/etc/
install -m 0755 ${WORKDIR}/syslog.conf ${D}/etc/
}   
addtask deploy after do_install 
do_install_append () {
install -d ${D}/home/root/.evcc_logs/
install -d ${D}/etc/evcc/
install -d ${D}/tmpfs/
install -d ${D}/tmpfs/can
}
FILES_${PN} += "/home/root/.evcc_logs/ 
/etc/evcc/ 
/tmpfs/ 
/tmpfs/can 
"

logrotate.bappend

FILESEXTRAPATHS_prepend := "${THISDIR}/files/:"
SRC_URI_append = " file://logrotate.conf file://services file://rotaterules"
inherit systemd
SYSTEMD_SERVICE_${PN} = " logrotate.service logrotate.timer"
do_install_append(){
install -d 755 ${D}/${sysconfdir}/logrotate.d/

install -m 0644 ${WORKDIR}/logrotate.conf ${D}/etc
install -m 0644 ${WORKDIR}/rotaterules/info ${D}/etc/logrotate.d/info
install -m 0644 ${WORKDIR}/rotaterules/debug ${D}/etc/logrotate.d/debug
install -m 0644 ${WORKDIR}/rotaterules/btmp ${D}/etc/logrotate.d/btmp
install -m 0644 ${WORKDIR}/rotaterules/wtmp ${D}/etc/logrotate.d/wtmp   

install -d ${D}{systemd_system_unitdir}
install -m 0644 ${WORKDIR}/services/logrotate.service ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/services/logrotate.timer ${D}${systemd_system_unitdir}
}
FILES_${PN} += " 
/etc/logrotate.conf 
${base_libdir}/systemd/system/logrotate.service 
${base_libdir}/systemd/system/logrotate.timer 
/lib/systemd/system 
"

logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# compress log files
compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

logrotate.timer(设置为每分钟运行一次以进行调试(

[Unit]
Description=Timer to run log rotation every day
Requires=logrotate.service
[Timer]
Unit=logrotate.service
OnCalendar=*-*-* *:*:00
Persistent=true
[Install]
WantedBy=timers.target

logrotate.service

[Unit]
Description=Log rotation service
[Service]
Type=simple
ExecStart=/usr/sbin/logrotate -f /etc/logrotate.conf

编辑:我认为我的系统可能有一个我不知道的固有的最大文件大小。这似乎不是一个功能。

事实证明这是busybox中的一个错误配置问题。我不得不进入日志记录设置并关闭旋转日志文件选项。我还增加了syslogd读取缓冲区的大小。

# CONFIG_FEATURE_ROTATE_LOGFILE is not set
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=512

最新更新