2013-01-16 74 views
0

我正在使用將應用程序的日誌存儲在平面文件中的項目。是否可以將日誌文件轉儲到數據庫中?

但是日誌還需要存儲在mysql數據庫中以用於監視目的。

是否可以使用日誌文件作爲輸入來創建數據庫?所以我想這將是一個mysqldump的反面?

+0

它們已經存儲在已針對文件存儲和檢索進行了優化的數據庫中:文件系統。你爲什麼要將它們存儲在RDBMS中?你提到的這些「監控目的」是什麼? – eggyal

+0

作爲系統需要登錄到平面文件的需求的一部分,我需要他們在MySQL數據庫中。工具將被用來分析mysql數據庫中的數據。我不確定這些工具是什麼 – Travis

+0

「*我需要他們在MySQL數據庫*」可能需要一些進一步的解釋。這個數據庫的模式是什麼?它可能會由要執行的分析或操縱它的工具決定。這反過來將決定如何導入日誌。 – eggyal

回答

0

是的,這是可能的。有一百萬種方法可以做到這一點,這裏是一個使用bash和sqlite3作爲數據庫的方法。

dw2:/tmp$ echo 'create table log (datetime string, message varchar(255));' | sqlite3 test.db 
dw2:/tmp$ cat test.log 
2013-01-16 05:24:40-05:00 Log line 1 
2013-01-16 05:24:42-05:00 Log line 2 
2013-01-16 05:24:44-05:00 Log line 3 
2013-01-16 05:24:46-05:00 Log line 4 
dw2:/tmp$ while read date time logmsg; do 
    echo "insert into log values ('$date $time', '$logmsg');" | sqlite3 test.db 
done < test.log 
dw2:/tmp$ echo 'select * from log;' | sqlite3 test.db       
2013-01-16 05:24:40-05:00|Log line 1 
2013-01-16 05:24:42-05:00|Log line 2 
2013-01-16 05:24:44-05:00|Log line 3 
2013-01-16 05:24:46-05:00|Log line 4 
相關問題