我有一个yocto图像使用syslog和日志旋转。我的syslog允许创建两个日志文件。一个用于调试消息,一个用于所有其他消息。我的调试日志文件将增长到200 My,然后将被移动到调试器0。归档文件(如调试器1、调试器2等)从未创建过。这意味着我正在失去数据。我将这个文件的日志旋转设置为每天激活,大小为10 my。
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/consolebusybox.bbappend
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.bbappend
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.dlogrotate.timer (设置为每分钟运行调试)
[Unit]
Description=Timer to run log rotation every day
Requires=logrotate.service
[Timer]
Unit=logrotate.service
OnCalendar=*-*-* *:*:00
Persistent=true
[Install]
WantedBy=timers.targetlogrotate.service
[Unit]
Description=Log rotation service
[Service]
Type=simple
ExecStart=/usr/sbin/logrotate -f /etc/logrotate.conf编辑:我认为我的系统可能有一个内在的最大文件大小,我没有意识到。这似乎不是一个特性。
发布于 2022-10-04 20:00:11
结果发现,这是一个在busybox中出现的错误配置问题。我必须进入日志记录设置并关闭旋转日志文件选项。我还增加了syAdd.1-d读取缓冲区的大小。
# CONFIG_FEATURE_ROTATE_LOGFILE is not set
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=512https://stackoverflow.com/questions/73952342
复制相似问题