本文目錄一覽:
- 1、thinkphp 記錄管理員行為日誌,思路是怎麼啊啊?
- 2、php該在哪裡寫日誌?怎麼寫日誌?日誌是做什麼用的?
- 3、php實現日誌管理(記錄用戶操作)原理
- 4、php日誌類??
- 5、如何開啟PHP日誌功能?
- 6、thinkphp的記錄用戶行為的日誌怎麼實現?
thinkphp 記錄管理員行為日誌,思路是怎麼啊啊?
寫一個方法,把資料庫欄位,行為方法存到數組裡邊,然後賦在每個控制器的每個方法下面,把控制器加方法轉換成字元串! 比如你加在login/index裡邊就轉化成登陸字樣,然後add到資料庫,循環到你的日誌上
php該在哪裡寫日誌?怎麼寫日誌?日誌是做什麼用的?
所謂的日誌就是記錄系統運行狀態的數據。
一般是將信息記錄到文本文件或資料庫中。
比如:
?php
function writeLog($msg){
$logFile = date(‘Y-m-d’).’.txt’;
$msg = date(‘Y-m-d H:i:s’).’ ‘.$msg.”\r\n”;
file_put_contents($logFile,$msg,FILE_APPEND );
}
//調用上面的函數,寫一條信息進日誌文件
writeLog(‘這是測試日誌信息’);
?
php實現日誌管理(記錄用戶操作)原理
把日誌需要保留的數據用json串或xml等數據結構的方式存儲起來,調用的時候直接解析這些數據結構即可。
按簡單的理解,給各模塊的關鍵步驟起個操作名字,記錄一下該操作名,時間,用戶,IP等就完了。
單入口模式,這樣只需要往index.php加入write_log功能就好了。
至於哪個欄位,原值,新值,這個沒什麼好方法啊,可以引入插件機制,
開個類存儲插件方法,命名以module_task為準,比如以上的url就是article_update
那麼這個插件類就是
class plugin
{
public $extraLog;
function article_update($field,$old,$new)
{
self::$extraLog = array(‘欄位’=$field,’原值’=$old,’新值’=$new);
}
}
這個方法在流程頁面進行資料庫操作的地方調用,index.php的write_log流程只讀plubin::$extraLog,循環然後和其它信息一起入庫或文件。
php日誌類??
首先,你得有一個「日誌類」,明顯PHP並沒有內置,所以你需要自己編寫這個類。
日誌模塊的大概設計思路如下:
1、你得有一個數據表,記錄所有的用戶行為。
2、你得寫一個「日誌類」,這個類至少有一個方法:向數據表寫入日誌信息
那日誌信息從哪裡來呢?
在你想記錄日誌的地方,調用日誌類的方法來觸發寫入動作。
比如(偽代碼):
if (用戶登錄成功){
$日誌類 = new 日誌類();
$日誌類-插入數據( “登錄日誌”, “登錄成功”, “username=a;password=b”, “IP” … )
}
如果你想做日誌的查詢功能,顯然你要給日誌類加更多方法..
如何開啟PHP日誌功能?
在php編程中,對於一些訪問沒有明顯錯誤提示的php頁面,可以通過error_log來做進一步的判定。
但出於種種原因,有些伺服器並沒有開啟PHP的error_log功能。
測試或其它需要時,可以打開一下,方法如下。
編輯php.ini,將log_errors設置為on:
log_errors = On
然後,重啟apache即可。
如成功開啟,就可以跟蹤到對應的錯誤提示:
[Mon Sep 24 16:57:01 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:02 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:03 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:04 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line
另外,注意在Windows環境下,除了將log_errors設置為on外,還需要定義error_log的路徑及文件名:
error_log = d:/temp/error.log
(此目錄需要授予php標識用戶的修改許可權,否則日誌文件無法生成)
IIS沒有error_log的概念,所以需要另外定義。
thinkphp的記錄用戶行為的日誌怎麼實現?
Think\Log::record(‘測試日誌信息’);
如果為了後期方便程序解析的話可以用特定的格式記錄
如:Think\Log::write($user.’審核圖片’.$photo.”:”.”不通過”,’WARN’);即用戶審核圖片結果是不通過
用戶行為分析,是指在獲得網站訪問量基本數據的情況下,對有關數據進行統計、分析,從中發現用戶訪問網站的規律,並將這些規律與網路營銷策略等相結合,從而發現目前網路營銷活動中可能存在的問題,並為進一步修正或重新制定網路營銷策略提供依據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304210.html