我目前在 Linux RHEL 平台上使用 Log4cpp 进行日志记录。
我不断记录一个守护程序应用程序。
我的问题是 log4cpp 生成的日志文件可能随时被删除(使用 rm 命令、logrotate 等),虽然文件被删除,但文件描述符仍然由守护进程打开。Log4cpp 不断尝试登录该文件,但没有添加任何内容,新的日志行会丢失,直到我手动创建一个新的日志文件。
我通过在 logrotate 配置中使用 SIGHUP 信号解决了 logrotate 问题,以便守护程序在每次日志轮换时重新启动 log4cpp 实例。但我希望有一个更聪明的方法,因为新用户在刷出日志目录后不会向我的守护进程发送 SIGHUP,并且稍后会注意到守护进程没有记录。
有任何想法吗 ?