Slim研讀筆記七亂入篇之Monolog(補)

2021-08-13 22:44:59 字數 1373 閱讀 9292

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元件 這些都是柚子做專案時經常用到的元件,隨著框...