
我有一個包含日誌文件的目錄,並且不時添加新文件。我想在組合視圖中“尾部”它們(查看合併在一起的所有文件中的所有行)
我看到 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 不理解日誌檔案格式,它會將檔案視為純文字。您可以建立新的格式定義,如其中所述文件。