![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5iN0AjM1QWZjlTNiZWOyQTOyYzXzQDMyATMwMzLcVDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
日志是每個項目中必不可少的,通過日志的分析,可以友善使用者了解系統或軟體、應用的運作情況,進而幫助我們完善系統。
目前功能比較全面的第三方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