seaslog是乙個c語言編寫的php擴充套件,提供一組規範標準的功能函式,在php專案中方便、規範、高效地寫日誌,以及快速地讀取和查詢日誌。
高效能
seaslog使用c語言編寫,並帶有緩衝池的功能。每次寫入的日誌,是先寫入到記憶體當中,當達到一定的數量時,才寫入到檔案當中。配置簡單
seaslog的配置十分簡單,甚至不需要配置就可以直接使用。功能完善,使用簡單
支援日誌級別支援日誌分模組存放
支援日誌統計,分析
wget pecl.php
.net/get/seaslog-1.5
.6.tgz
.6.tgz
tar -zxvf seaslog-1.5
.6.tgz
使用php自帶的安裝方法,ubuntu下需要先安裝 php5-dev 的包
apt-get install php5-dev
phpize
使用了phpize命令之後,當前解壓的路徑下回多出乙個configure的檔案.
後面修改為自己的php-config路徑
./configure --
with
-php
-config
=/usr/bin/php-config
編譯並安裝
make && make install
在php.ini中配置seaslog
;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"
重啟apache伺服器
service apache2 restart
seaslog將日誌分為了8個級別,其中我們可以使用如下常量,代表各級別。
seaslog_debug "debug"
seaslog_info "info"
seaslog_notice "notice"
seaslog_warning "warning"
seaslog_error "error"
seaslog_critical "critical"
seaslog_alert "alert"
seaslog_emergency "emergency"
設定存放路徑
在開始使用seaslog寫入日誌之前,我們需要先設定日誌的存放路徑,如果沒有設定路徑的話,seaslog會預設將這個日誌寫入到php.ini配置中預設指定的路徑下
seaslog::setbasepath('/log/base_test');
可以使用以下方法,獲取當前的存放路徑。
seaslog
::getbasepath();
設定日誌的模組
和設定路徑的使用方法一樣,設定模組呼叫如下命令
獲取模組
seaslog
::getlastlogger()
快速寫入日誌
上面已經設定過了basepath與logger,於是log記錄的目錄已經產生了
log記錄目錄 = basepath / logger / .log log檔名,以 年月日 分檔案,如今天是2023年02月18日期,那麼 = 20140218;呼叫以下方法可以快速寫入乙個日誌,level引數為日誌的等級,message為日誌的資訊
日誌的等級我們可以傳入上面介紹過的常量,也可以傳入等級的名稱,比如說info,error等,建議使用常量
seaslog::log(level, message);
寫入指定等級的日誌資訊,可以使用以下的方法
seaslog
::debug(message);
seaslog
::info(message);
seaslog
::notice(message);
seaslog
::warning(message);
seaslog
::error(message);
seaslog
::critical(message);
seaslog
::alert(message);
seaslog
::emergency(message);
快速統計日誌
使用下面這個方法,可以將各級別的所有日誌資訊彙總後,返回乙個陣列
$count = seaslog::analyzercount();
var_dump($count);
/*array(8)
*/
返回指定級別的日誌資訊數量
$count
= seaslog::analyzercount(seaslog_warning);
var_dump($count);
// int(7)
返回當天的指定級別的日誌資訊數量
$count
= seaslog::analyzercount(seaslog_error,date('ymd',time()));
var_dump($count);
// int(1)
返回日誌列表
返回指定級別的日誌列表
seaslog::analyzerdetail(seaslog_error);
/*array(6)
*/
返回指定級別當天的日誌列表
seaslog::analyzerdetail(seaslog_error,date('ymd',time()));
打造高效能站點
robbin的部落格 blog 77338 為什麼orm效能比ibatis好?django快取 cache backend memcached memcached的乙個極好的特性是它在多個伺服器分享快取的能力,這意味著你可以在多台機器上執行memcached程序,程式將會把這組機器當作乙個單獨的快取...
如何打造高效能大資料分析平台
from 原文 building high performance big data analytics systems 大資料分析系統作為乙個關鍵性的系統在各個公司迅速崛起。但是這種海量規模的資料帶來了前所未有的效能挑戰。同時,如果大資料分析系統無法在第一時間為運營決策提供關鍵資料,那麼這樣的大資...
榮耀發力拍照手機 打造高效能潮流新品
2020年是5g手機爆發的程式設計客棧一年,在這個大環境下,各類5g手機層出不窮。而智慧型手機發展到今天,拍照方面已經越發成熟,目前市面上www.cppcns.com支援5g的拍照手機也不在少數。今年4月,榮耀發布榮耀30系列拍照手機,新潮的設計 強大的配置令人眼前一亮,更獲得眾多好評。此次榮耀30...