PHP扩展高性能日志系统SeasLog简单上手
Windows部分:
--------------------------------------------------------
https://pecl.php.net/package/SeasLog/1.6.9/windows
根據(jù)PHP版本 是否線程安全 進行選擇 這些都可以在phpinfo里查得到
?
下載之后 把里面的php_seaslog.dll拷貝到PHP的安裝目錄下的ext里
?
然后打開php.ini進行配置
extension=php_seaslog.dll
?
?
Linux部分:
------------------------------------------------------------
下載地址 https://pecl.php.net/package/seaslog
將包用ftp傳到Linux上 然后移走
mv SeasLog-1.6.9.tgz /usr/local/SeasLog.tgz
?
進入目錄解壓
cd /usr/local
tar -zxvf SeasLog.tgz
?
?
執(zhí)行PHP安裝目錄下的phpize
/usr/local/php7/bin/phpize
?
搜索php-config路徑
find /usr/local/php7/ -name php-config
得到/usr/local/php7/bin/php-config
?
配置
./configure --with-php-config=/usr/local/php7/bin/php-config
?
編譯
make
?
安裝
make install
出現(xiàn)Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
則成功
?
打開php.ini進行配置
找到一排extension的地方 加上extension=seaslog.so
?
?
?
公共部分:
---------------------------------------------------------------
在php.ini中 extension下面接著配置以下信息:
?
seaslog.default_basepath = 'D:/WWW/log' ;默認(rèn)log根目錄 記著 是目錄
seaslog.default_logger = default ;默認(rèn)日志目錄 位于default_basepath目錄下的小目錄
seaslog.disting_type = 1 ;是否以type分文件 1是 0否(默認(rèn)) 若是 則每種級別都會單獨生成日志文件
seaslog.disting_by_hour = 0 ;是否每小時劃分一個文件 1是 0否(默認(rèn)) 若是 則每個小時都會生成新文件
seaslog.use_buffer = 1 ;是否啟用buffer 1是 0否(默認(rèn)) 默認(rèn)關(guān)閉,當(dāng)開啟此項時,日志預(yù)存于內(nèi)存,當(dāng)請求結(jié)束時(或異常退出時)一次寫入文件。
seaslog.buffer_size = 100 ;buffer中緩沖數(shù)量 默認(rèn)0(不使用)
seaslog.level = 0 ;記錄日志級別 默認(rèn)0(所有日志)
?
第二條配置seaslog.default_logger我選擇在項目的入口文件中再指定Seaslog::setLogger('...')?
這樣就可以每個項目一個日志目錄了
?
SeasLog 日志8個級別
debug -> info -> notice -> warning -> error -> critical -> alert -> emergency
?
保存退出 重啟Apache 打個phpinfo()出來找找有沒有SeasLog擴展
?
?
以下是PHP中的seaslog函數(shù):
?
basepath
設(shè)置:Seaslog::setBasePath('/log/base_test');
獲取:Seaslog::getBasePath();
?
logger
設(shè)置:Seaslog::setLogger('app');
獲取:Seaslog::getLastLogger();
?
寫日志:
Seaslog::debug('...')
Seaslog::info('...')
Seaslog::notice('...')
八個級別都可以記錄
日志內(nèi)容格式為:級別-pid-時間戳-格式化時間-日志內(nèi)容
?
讀取日志條數(shù)
Seaslog::analyzerCount('{日志級別}');//如果不填參數(shù) 則代表統(tǒng)計全部級別
Seaslog::analyzerCount('{日志級別}','20170914');指定統(tǒng)計某一天的日志
?
讀取日志
Seaslog::analyzerDetail('{日志級別}','20170914');//也有兩個參數(shù) 日志級別和指定時間 第一個日志級別參數(shù)必填 時間可選
?
?
輸出info級別的日志:
echo "<pre>";
print_r(Seaslog::analyzerDetail('info'));
echo "</pre>";
?
某些PHP框架默認(rèn)為當(dāng)前控制器命名空間 所以會報Seaslog not found?
只需在前面指定根命名空間就OK: \Seaslog::debug('...')
來源:https://www.cnblogs.com/fengyumeng/p/7521378.html
總結(jié)
以上是生活随笔為你收集整理的PHP扩展高性能日志系统SeasLog简单上手的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 默而识之学而不厌诲人不倦何有于我哉的意思
- 下一篇: 中秋节祝福语句简短唯美(一句话送朋友)