我有一个包含日志文件的目录,不时会添加新文件。我想在组合视图中“tailf”它们(查看合并在一起的所有文件的所有行)
我看到 lnav 对此进行了几次推荐,并且根据功能描述,它应该支持这些选项 - 但文档不够清晰。
具体来说 - 当运行 lnav 来跟踪目录时,我可以使用 f\F 键切换日志文件,但无法获得组合视图
答案1
确实,我没有看到任何适合您需要的好的解决方案lnav
。我能想到的最好的方法是tail -f
在所有日志文件上使用:
tail -f file_1.log ... file_n.log
另一个解决方案logtail
也有一些缺点,但可以处理不时添加新日志文件的情况:
#!/bin/bash
# Quietly initialize logtail offset files
for logfile in *log
do
logtail $logfile
done > /dev/null
while :
do
# wait a second for new logs
sleep 1
for logfile in *log
do
# output new logs since last logtail run, prepend with log filename
logtail $logfile | sed "s/^/$logfile: /"
done
done
答案2
如果文件有时间戳并且 lnav 理解文件格式,则可以在 lnav 中获取日志消息的组合视图。如果 lnav 不理解日志文件格式,它会将文件视为纯文本。您可以按照其文档。