Windows部分:
--------------------------------------------------------
https://pecl.php.net/package/SeasLog/1.6.9/windows
根據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
執行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('...')