我使用PHP和Oracle,並使用crontab在預定時間執行PHP腳本。我目前的日誌/審計解決方案涉及簡單的日誌文件。我想將我的cron執行日誌保存到數據庫中。我應該如何實現一個數據庫cron作業記錄器?
現在我試圖設計過程,以便當一個cron作業開始時,我在CronExecution
表中創建一個記錄。然後每當我想爲該cron記錄某些東西時,我就會在CronEvent
表中記錄一條記錄,該表中有CronExecution
表的外鍵。
我計劃使用PRAGMA AUTONOMOUS
pl/sql過程記錄所有事件。通過這個過程,我將能夠以一致的方式記錄其他pl/sql程序中的事件以及我的PHP代碼。
爲了使它更健壯,我的計劃是在數據庫日誌調用失敗的情況下有一個回退以將錯誤記錄到文件。
有沒有人寫過類似的東西?你有什麼建議根據你的經驗?
那麼你是否建議我有一個CLOB專欄,在每次完成工作時追加每封郵件?然後在最後設置完成狀態或者什麼,在這一點上我可以從該CLOB中檢索整個執行日誌? 您還了解我在數據庫中具有某種調度屬性的想法。我已經使用了Quartz for Java,並且我喜歡這一點,但是我不確定我可以從crontab中接收多少功能,因爲我使用的是PHP。但添加信息字段與開始/停止/下一次運行的細節是一個好主意。謝謝! – 2010-06-28 04:13:43
CLOB,VARCHAR(MAX),無論你在數據庫中。根據我的經驗,我很少需要'CronEvent'級別的任何東西。只需在每條日誌消息的開始處打印時間,並且您應該沒問題。現在你不需要在數據庫中進行配置,但是當你開始編寫代碼來觀看「CronLog」時,你會想知道的最大問題是「X最後一次運行的時間,需要多長時間,什麼時候會運行它再次運行「 – 2010-06-28 04:28:20