php日誌分析
1. ubuntu下怎麼查看php網站的運行日誌。
PHP是不寫日誌的,你可以查看WEB伺服器的日誌,具體方法與你使用的WEB伺服器軟體有關,如果是apache,那麼在logs目錄下有error、access等文件,那就是日誌,可以查看內容。
2. php日誌類
首先,你得有一個「日誌類」,明顯PHP並沒有內置,所以你需要自己編寫這個類。
日誌模塊的大概設計思路如下:
1、你得有一個數據表,記錄所有的用戶行為。
2、你得寫一個「日誌類」,這個類至少有一個方法:向數據表寫入日誌信息
那日誌信息從哪裡來呢?
在你想記錄日誌的地方,調用日誌類的方法來觸發寫入動作。
比如(偽代碼):
if(用戶登錄成功){
$日誌類=new日誌類();
$日誌類->插入數據("登錄日誌","登錄成功","username=a;password=b","IP"...)
}
如果你想做日誌的查詢功能,顯然你要給日誌類加更多方法..
3. 怎麼讓php列印錯誤日誌
這個得需要在php.ini裡面配置開啟錯誤日誌,並且設置錯誤日誌的保存路徑。
4. PHP自帶的日誌是怎麼寫入和查看的呢
查看PHP錯誤日誌
可以在命令行裡面輸入: find . -name error.log
tailf -f error.log
寫入日誌,有固定的函數error_log($str, 3, filename)
5. thinkphp日誌記錄文件被存在了什麼地方
日誌記錄\ThinkPHP\Lib\Think\Core\Log.class.php
1、可以在config.php中進行設置,默認為關閉狀態。 'APP_DEBUG' => true
打開\ThinkPHP\Common\debug.php文件可以查看debug的默認設置如下:
return array(
'LOG_RECORD'=>true, // 進行日誌記錄
'LOG_RECORD_LEVEL' => array('EMERG','ALERT','CRIT','ERR','WARN','NOTIC','INFO','DEBUG','SQL'), // 允許記錄的日誌級別
'DB_FIELDS_CACHE'=> false, //資料庫欄位緩存
'SHOW_RUN_TIME'=>true, // 運行時間顯示
'SHOW_ADV_TIME'=>true, // 顯示詳細的運行時間
'SHOW_DB_TIMES'=>true, // 顯示資料庫查詢和寫入次數
'SHOW_CACHE_TIMES'=>true, // 顯示緩存操作次數
'SHOW_USE_MEM'=>true, // 顯示內存開銷
'SHOW_PAGE_TRACE'=>true, // 顯示頁面Trace信息 由Trace文件定義和Action操作賦值
'APP_FILE_CASE' => true, // 是否檢查文件的大小寫 對Windows平台有效
);
注意事項:DB_FIELDS_CACHE資料庫欄位緩存默認關閉狀態,如果開啟的話,會在Runtime\Data文件夾下生成文件緩存,並且修改表之後,如新加了欄位,這個緩存無法記錄你的操作,需要我們手動刪除一次,對表的修改才會成功。
將'APP_DEBUG' => true後,訪問頁面會出現如下圖的DEBUG提示:
如果只想顯示一部分提示信息,如運行時間,內存開銷等,
可以在config.php中進行相應的設置即可,如:
//'APP_DEBUG' => true, // 調試模式開關
'SHOW_RUN_TIME' => true, //運行時間顯示
'SHOW_ADV_TIME' => true, //顯示詳細的運行時間
'SHOW_DB_TIMES' => true, //顯示資料庫的操作次數
'SHOW_CACHE_TIMES'=>true, //顯示緩存操作次數
'SHOW_USE_MEM' => true, //顯示內存開銷
提示信息如下圖:
2、頁面Trace信息的自定義:\ThinkPHP\Tpl\PageTrace.tpl.php
自定義的方法一:在config.php的同級目錄加上一個trace.php文件
<?php
return array{
'當前的server信息'=>$_SERVER['REMOTE_ADDR'],
};
?>
自定義的方法二:在Action方法中添加
$this->trace('我很醜,但是我很溫柔','514');
3、輸出調試法:
halt('aaaaaaa');//輸出aaaaaa並且中斷程序執行
4、模型調試:顯示SQL語句
$User=new Model('User');
$User->find(1);
echo $User->getLastSql();//輸出最後執行的一條SQL語句
5、日誌記錄\ThinkPHP\Lib\Think\Core\Log.class.php
config.php中設置
'LOG_RECORD'=>true,//開啟了日誌記錄
'LOG_RECORD_LEVEL'=>array('EMERG','ALERT'