syslogd 是什么?为什么需要使用它?
syslogd(System Log Daemon)是 Linux/Unix 系统中一个非常经典的系统日志守护进程。
核心逻辑的“解耦”:搬运 vs 管理
logger2syslog.cpp的本质任务:它是 Android 日志系统(二进制格式)和传统 Linux 日志系统(文本格式)之间的桥梁。它的核心代码是在调用liblog去读取 Android 的main、system等 buffer。syslogd的本质任务:它是文件管理专家。它专门负责处理:如果磁盘满了怎么办?如果文件到了 4MB 怎么切分?如何保证在切分文件的一瞬间日志不丢失?
为什么要分开?如果你在logger2syslog.cpp里写文件轮转逻辑(比如管理 n 个文件),你需要写大量的 C++ 代码来处理文件 I/O、重命名、删除旧文件等。一旦这部分代码写得不好(比如在重命名 300 个文件时卡住了),就会导致日志抓取出现丢包。专业的事情交给专业的工具(syslogd)去做,系统会更稳定。
