Windows部分:
--------------------------------------------------------php
https://pecl.php.net/package/SeasLog/1.6.9/windowswindows
根據PHP版本 是否線程安全 進行選擇 這些均可以在phpinfo裏查獲得安全
下載以後 把裏面的php_seaslog.dll拷貝到PHP的安裝目錄下的ext裏php7
而後打開php.ini進行配置app
extension=php_seaslog.dll框架
Linux部分:
------------------------------------------------------------
下載地址 https://pecl.php.net/package/seaslog函數
將包用ftp傳到Linux上 而後移走
mv SeasLog-1.6.9.tgz /usr/local/SeasLog.tgzspa
進入目錄解壓
cd /usr/local
tar -zxvf SeasLog.tgz.net
執行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
出現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' ;默認log根目錄 記着 是目錄
seaslog.default_logger = default ;默認日誌目錄 位於default_basepath目錄下的小目錄
seaslog.disting_type = 1 ;是否以type分文件 1是 0否(默認) 如果 則每種級別都會單獨生成日誌文件
seaslog.disting_by_hour = 0 ;是否每小時劃分一個文件 1是 0否(默認) 如果 則每一個小時都會生成新文件
seaslog.use_buffer = 1 ;是否啓用buffer 1是 0否(默認) 默認關閉,當開啓此項時,日誌預存於內存,當請求結束時(或異常退出時)一次寫入文件。
seaslog.buffer_size = 100 ;buffer中緩衝數量 默認0(不使用)
seaslog.level = 0 ;記錄日誌級別 默認0(全部日誌)
第二條配置seaslog.default_logger我選擇在項目的入口文件中再指定Seaslog::setLogger('...')
這樣就能夠每一個項目一個日誌目錄了
SeasLog 日誌8個級別
debug -> info -> notice -> warning -> error -> critical -> alert -> emergency
保存退出 重啓Apache 打個phpinfo()出來找找有沒有SeasLog擴展
如下是PHP中的seaslog函數:
basepath
設置:Seaslog::setBasePath('/log/base_test');
獲取:Seaslog::getBasePath();
logger
設置:Seaslog::setLogger('app');
獲取:Seaslog::getLastLogger();
寫日誌:
Seaslog::debug('...')
Seaslog::info('...')
Seaslog::notice('...')
八個級別均可以記錄
日誌內容格式爲:級別-pid-時間戳-格式化時間-日誌內容
讀取日誌條數
Seaslog::analyzerCount('{日誌級別}');//若是不填參數 則表明統計所有級別
Seaslog::analyzerCount('{日誌級別}','20170914');指定統計某一天的日誌
讀取日誌
Seaslog::analyzerDetail('{日誌級別}','20170914');//也有兩個參數 日誌級別和指定時間 第一個日誌級別參數必填 時間可選
輸出info級別的日誌:
echo "<pre>";
print_r(Seaslog::analyzerDetail('info'));
echo "</pre>";
某些PHP框架默認爲當前控制器命名空間 因此會報Seaslog not found
只需在前面指定根命名空間就OK: \Seaslog::debug('...')