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('...')