Monolog(1)--死機筆記本

身為一個開發者,有時會需要知道維運的過程中發生了什麼意外錯誤訊息。現在 Slack 很紅,只要開個 channel 設定一下,就會生出一個 webhook url。然後只要透過 HTTP 協定,就能把訊息往 channel 送。

但有些人是 Atlassian 派,覺得 HipChat 才是王道;又有人說,我想用線上服務 Rollbar 來記錄;甚至還有人習慣收 Email 呢。

這麼多種服務,每次都要看文件串接,真的有點麻煩。

串接還是小事,我們再往下看:


身為一個 PHP 開發者,開發或測試階段會想知道某段程式發生了什麼事,最常用的招數相信大家都知道--echo 放在程式裡面就能看得到內容啦!但有時不是單純某一段程式,而是需要記錄很多位置的內容;又或是記錄的內容不是要印出來,而是要存在其他地方。

基於種種因素,echo 雖然是個 debug 最簡單也最常用的工具,但在這多變的需求下,就顯得太簡陋了。


又或是上述有提到串接很多種提醒機制,而有種需求是同個訊息內容,要分派到不同的提醒。比方說 DB 連線失敗要同時通知 Slack 給開發團隊、寄簡訊給 DBA、發 mail 給老闆。這樣 DB 連線豈不要寫三行程式才能做這三件事?

這還不打緊,要是哪天寄簡訊的 SDK 改版了,程式的所有角落都得掃過一次,不然 DBA 收不到簡訊,服務就完蛋了!


Monolog 正是解決上述問題的好夥伴。

  • 要串接常見的服務?可以!
  • 要用簡單的語法記錄多個位置?可以!
  • 同時通知多種服務?可以,而且只要使用 PSR-3 提供的介面就行了。

後面我們來一起看看 Monolog 是如何解決這些問題吧。