日志記錄工具


日志是每個項目中必不可少的,通過日志的分析,可以方便用戶了解系統或軟件、應用的運行情況,從而幫助我們完善系統。
目前功能比較全面的第三方PHP開源日志框架有Monolog、SeasLog、log4php等,其中以log4php最為著名,設計精良、格式完美、文檔完善、功能強大;Monolog功能較全而且易於擴展,被集成在很多PHP開源框架之中;SeasLog功能也很強大並且有着C語言般的卓越性能,而且是國人所創。當然還有很多小巧實用的開源日志框架,如KLogger,簡單易用,很適合小項目中使用。
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
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

 

 
個人觀點:
Monolog:大項目首選推薦,基本需要的功能都有。
SeasLog:如果你特別在意日志的性能問題,並且不嫌組件庫配置麻煩,就選擇SeasLog,大項目中可以嘗試,小項目就算了,別折騰。
Log4php:不推薦使用,官方基本已經不更新了,如果你非常熟悉log4j,倒是可以嘗試使用。
KLogger:如果你只需要記錄一下debug、info、notice之類的信息而不需要做其它進一步處理,強烈推薦KLogger。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM