本文目錄一覽:
- 1、php該在哪裡寫日誌?怎麼寫日誌?日誌是做什麼用的?
- 2、PHP的錯誤日誌文件“php_error_log”可以直接刪除么?
- 3、php實現的debug log日誌操作類實例
- 4、如何開啟PHP日誌功能?
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_error_log”可以直接刪除么?
任何時辰刪除都是可以的php
錯誤日誌供給了一些選項,沒有需要自己手工打點ignore_repeated_errors
=
0n
;不記實一再來歷的錯誤ignore_repeated_source
=
On
;忽略錯誤來歷這樣的日誌文件不會很年夜
查看原帖
php實現的debug log日誌操作類實例
本文實例講述了php實現的debug
log日誌操作類。分享給大家供大家參考,具體如下:
?php
class
Tool
{
public
static
function
log($info)
{
$time
=
date(‘m-d
H:i:s’);
$backtrace
=
debug_backtrace();
$backtrace_line
=
array_shift($backtrace);
//
哪一行調用的log方法
$backtrace_call
=
array_shift($backtrace);
//
誰調用的log方法
$file
=
substr($backtrace_line[‘file’],
strlen($_SERVER[‘DOCUMENT_ROOT’]));
$line
=
$backtrace_line[‘line’];
$class
=
isset($backtrace_call[‘class’])
?
$backtrace_call[‘class’]
:
”;
$type
=
isset($backtrace_call[‘type’])
?
$backtrace_call[‘type’]
:
”;
$func
=
$backtrace_call[‘function’];
file_put_contents($_SERVER[‘DOCUMENT_ROOT’].’/debug.log’,
“$time
$file:$line
$class$type$func:
$info\n”,
FILE_APPEND);
}
}
class
Action
{
public
function
a()
{
$this-b();
}
public
function
b()
{
$this-c();
}
public
function
c()
{
Tool::log(‘sdfsdf’);
}
}
$action
=
new
Action();
$action-a();
這裡再補充一個函數:
function
loginfo($format)
{
$args
=
func_get_args();
array_shift($args);
$d
=
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT,
1)[0];
$info
=
vsprintf($format,
$args);
$data
=
sprintf(“%s
%s,%d:
%s\n”,
date(“Ymd
His”),
$d[“file”],
$d[“line”],
$info);
file_put_contents(__DIR__.”/log.txt”,
$data,
FILE_APPEND);
}
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP錯誤與異常處理方法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
如何開啟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的概念,所以需要另外定義。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/190884.html