内存日志记录

内存日志记录

可能重复:
将日志文件变成一种循环缓冲区

我有一个守护进程应用程序,它会将其日志打印到 stdout/stderr。我正在寻找一种方法来保留日志的最后 N 行在记忆中并根据需要访问它们,最好使用像 cat 这样简单的工具。这些日志不必保存到磁盘。

基本上我很想做类似的事情:

./mydaemon.sh | memlog 100 mydaemonlog &

然后,之后:

cat /some/path/here/mydaemonlog

我会得到最后 100 行日志,然后它会在文件中传输时继续打印日志mydaemonlog

是否有某种工具能够完成memlog上述示例中所做的事情?

答案1

您可以将日志输出到 /dev/shm,然后使用 tail 获取最后 n 行。

./mydaemon.sh >/dev/shm/log
tail -100 /dev/shm/log

答案2

有内存 sqlite 数据库。管理它的脚本可以确保一次只有 100 行。

相关内容