monolog是最為廣泛的php日誌庫,它有幾十個處理程式可記錄日誌到不同的程式中。柚子前段時間也曾寫過一篇關於monolog研讀博文,分析了monolog最重要兩個類中的關鍵**。
這節,介紹一些實用性的東東,譬如:如何用monolog開發elk可以使用的日誌。
logstash是乙個開源的日誌管理工具,帶有乙個漂亮的介面kibana。我不想在這裡描述如何安裝logstash,具體詳情可檢視我的博文微服務分類下的文章。
我們將使用redis作為logstash輸入elasticsearch作為輸出。請將下面的**新增到logstash配置:
input
}output
}
現在,logstash執行,讓我們來看看一些編碼。你需要安裝獨monolog/monolog和predis/predis。
<?php
// be sure monolog is installed via composer
require 'vendor/autoload.php'
use monolog\logger;
use monolog\handler\redishandler;
use monolog\formatter\logstashformatter;
use predis\client;
// init a redishandler with a logstashformatter.
// the parameters may differ depending on your configuration of redis.
// important: the parameter 'logs' must be equal to the key you defined
// in your logstash configuration.
$redishandler = new redishandler(new client(), 'phplogs');
$redishandler->setformatter($formatter);
// create a logger instance with the redishandler
$logger = new logger('logstash_test', array($redishandler));
// now you can start logging
$logger->info('logging some infos to logstash.');
如果你設定都是正確的,monolog會傳送日誌訊息到redis。由於logstash監聽redis,它會讀取訊息並將其傳送到elasticsearch。
Slim研讀筆記七亂入篇之Monolog(上)
最近兩天,我的同事小濤濤因開發需要,急需乙個日誌系統來記錄日誌。所以,從這節開始我們講解monolog,深入理解下monolog的使用方式與實現原理。在開始研讀之前,我們需要理清二個概念異常和錯誤。異常是exception類的物件,在遇到無法修復的狀況時丟擲 例如,遠端 api 無響應,資料庫查詢失...
Slim研讀筆記八之路由(下)
跟隨上節的腳步繼續研讀 上節檢視到了slim router類的map方法。這節讓我們根據乙個請求的執行過程具體學習下這個路由的核心類。增加乙個路由 字首父組 if this routegroups 將請求方法變為大寫 according to rfc methods are defined in u...
Slim研讀筆記二之造一款Slim應用
工欲善其事,必先利其器。柚子意圖研讀slim框架,若沒有乙個好的slim應用,也會顯得無從下手。所以,研讀第一步是 造一款slim應用。在我們即將要建立的slim應用中,用到了 twig模板引擎 monolog日誌管理元件 eloquent資料庫orm元件 這些都是柚子做專案時經常用到的元件,隨著框...