身為一個開發者,有時會需要知道維運的過程中發生了什麼意外錯誤訊息。現在 Slack 很紅,只要開個 channel 設定一下,就會生出一個 webhook url 。然後只要透過 HTTP 協定,就能把訊息往 channel 送。
但有些人是 Atlassian 派,覺得 HipChat 才是王道;又有人說,我想用線上服務 Rollbar 來記錄;甚至還有人習慣收 Email 呢。
這麼多種服務,每次都要看文件串接,真的有點麻煩。
串接還是小事,我們再往下看:
身為一個 PHP 開發者,開發或測試階段會想知道某段程式發生了什麼事,最常用的招數相信大家都知道--echo
放在程式裡面就能看得到內容啦!但有時不是單純某一段程式,而是需要記錄很多位置的內容;又或是記錄的內容不是要印出來,而是要存在其他地方。
基於種種因素, echo
雖然是個 debug 最簡單也最常用的工具,但在這多變的需求下,就顯得太簡陋了。
又或是上述有提到串接很多種提醒機制,而有種需求是同個訊息內容,要分派到不同的提醒。比方說 DB 連線失敗要同時通知 Slack 給開發團隊、寄簡訊給 DBA 、發 mail 給老闆。這樣 DB 連線豈不要寫三行程式才能做這三件事?
這還不打緊,要是哪天寄簡訊的 SDK 改版了,程式的所有角落都得掃過一次,不然 DBA 收不到簡訊,服務就完蛋了!
Monolog 正是解決上述問題的好夥伴。
後面我們來一起看看 Monolog 是如何解決這些問題吧。