本文目錄一覽:
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日誌功能?
在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日誌記錄文件被存在了什麼地方
日誌記錄\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(‘我很醜,但是我很溫柔’,’5211314′);
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’
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/307013.html