天天看點

日志記錄工具

日志記錄工具

日志是每個項目中必不可少的,通過日志的分析,可以友善使用者了解系統或軟體、應用的運作情況,進而幫助我們完善系統。

目前功能比較全面的第三方PHP開源日志架構有Monolog、SeasLog、log4php等,其中以log4php最為著名,設計精良、格式完美、文檔完善、功能強大;Monolog功能較全而且易于擴充,被內建在很多PHP開源架構之中;SeasLog功能也很強大并且有着C語言般的卓越性能,而且是國人所創。當然還有很多小巧實用的開源日志架構,如KLogger,簡單易用,很适合小項目中使用。

Monolog

日志是每個項目中必不可少的,通過日志的分析,可以友善使用者了解系統或軟體、應用的運作情況,進而幫助我們完善系統。目前功能比較全面的第三方PHP開源日志架構有Monolog、SeasLog、log4php等,其中以log4php最為著名,設計精良、格式完美、文檔完善、功能強大;Monolog功能較全而且易于擴充,被內建在很多PHP開源架構之中;SeasLog功能也很強大并且有着C語言般的卓越性能,而且是國人所創。當然還有很多小巧實用的開源日志架構,如KLogger,簡單易用,很适合小項目中使用。

Monolog

官網:​​https://github.com/Seldaek/monolog​​

Monolog是php下比較全又容易擴充的記錄日志元件。目前有包括Symfony 、Laravel、 CakePHP等諸多知名php架構都内置了Monolog。

Monolog可以把你的日志發送到檔案,sockets,收件箱,資料庫和各種web伺服器上。一些特殊的元件可以給你帶來特殊的日志政策。

每個Logger執行個體都有一個通道和日志處理器棧。每當你添加一條日志記錄,它會被發送到日志處理器棧。 你可以建立很多Logger,每個Logger定義一個通道(db,請求,路由),每個Logger有很多日志處理器。這些通道會過濾日志。

每個日志處理器都有一個Formatter(内置的日志顯示格式處理器)。你還可以設定日志級别。

日志級别

– DEBUG:詳細的debug資訊

– INFO:感興趣的事件。像使用者登入,SQL日志

– NOTICE:正常但有重大意義的事件。

– WARNING:發生異常,使用了已經過時的API。

– ERROR:運作時發生了錯誤,錯誤需要記錄下來并監視,但錯誤不需要立即處理。

– CRITICAL:關鍵錯誤,像應用中的元件不可用。

– ALETR:需要立即采取措施的錯誤,像整個網站挂掉了,資料庫不可用。這個時候觸發器會通過SMS通知你。

SeasLog

官網:​​https://github.com/Neeke/SeasLog​​

SeasLog是用C語言編寫的PHP擴充庫,功能強大而且性能極高,但是需要把它內建配置到php.ini,使用之前的準備工作稍有些煩瑣。

SeasLog功能非常豐富,基本能滿足大項目日志系統的各項需求

– 分子產品、分級别

– 配置簡單

– 日志格式清晰易讀

– 應用簡單、性能很棒

– 便捷、規範的log記錄

– 高效的海量log分析

– 可配置、多途徑的log預警

– 可配置的預設log目錄與子產品

– 指定log目錄與擷取目前配置

– 初步的分析預警架構

– 高效的日志緩沖、便捷的緩沖debug

– 遵循 PSR-3 日志接口規範

– 自動記錄錯誤資訊

– 自動記錄異常資訊

– 連接配接TCP端口發送

– 連接配接UDP端口發送

seaslog的安裝 

//1.下載下傳擴充
wget http://pecl.php.net/get/SeasLog-1.6.8.tgz

//2.解壓檔案
tar -zxvf SeasLog-1.6.8.tgz


//3.編譯
phpize  産生一個configure檔案

//4. 檢測
./configure--with-php-config=/usr/bin/php-config
//--with-php-config 自己的配置檔案

//5. 安裝
make && make install

//6. 在php.ini檔案中配置SeasLog資訊
extension=seaslog.so


//其他參數也可以進行配置,需要的可以檢視官網進行相應的配置
easlog.default_basepath
 = /var/log/

seaslog.default_logger
 = default

seaslog.disting_type
 = 1

seaslog.disting_by_hour
 = 1

seaslog.use_buffer
 = 1

seaslog.buffer_size
 = 100

seaslog.level
 = 0

seaslog.trace_error
 = 1

seaslog.trace_exception
 = 0

seaslog.default_datetime_format
 = "%Y:%m:%d %H:%M:%S"

//7.重新開機伺服器
service nginx reload
or
service php-fpm reload