PHP Development တွင်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ပရိုဂရမ်ရေးဆွဲခြင်းသည်ပရိုဂရမ်တည်ငြိမ်မှုနှင့်ပြ problems နာများကိုဖြေရှင်းရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။ PHP သည် Error_log နှင့် Set_error_Handler ကဲ့သို့သောယန္တရားများနှင့်အတူပါ 0 င်သော်လည်း, GetTraceasString () ခြွင်းချက် သင်တန်းတွင်နည်းလမ်းသည်ဤရည်မှန်းချက်အောင်မြင်ရန်ကျွန်ုပ်တို့ကိုကူညီနိုင်သည်။
GetTraceasString () သည် PHP ရှိ ချွင်းချက် အတန်းအစား၏နည်းလမ်းဖြစ်သည်။ ၎င်းသည် stack trace ၏သတင်းအချက်အလက်များကိုအမှတ်အသားပြုသည့်အချက်အလက်များကိုပြန်ပို့ခြင်းများကိုပြန်ပို့ရန်အသုံးပြုသည်။ ဤ string တွင် logging အတွက်အလွန်သင့်လျော်သော function ခေါ်ဆိုမှုများ, ဖိုင်အမည်နှင့်သက်ဆိုင်ရာလိုင်းနံပါတ်ပါ 0 င်သည်။
ဥပမာ output ကိုအောက်ပါအတိုင်းဖြစ်သည် -
#0 /var/www/html/index.php(10): someFunction()
#1 {main}
ကျွန်ုပ်တို့သည်အမှားမက်ဆေ့ခ်ျ ကို format လုပ်ပြီးချွင်းချက်ကိုဖမ်းယူခြင်းဖြင့် log file သို့ရေးနိုင်သည် ။ ဤတွင်ပြည့်စုံသောဥပမာတစ်ခုမှာ -
<code> & lt; php function ကို logerrortofile (ခြွင်းချက် $ င) {
$ logfile = dir ။ '/error.log';
$ logmessage = "[" ။ ရက်စွဲ ('YMD H: i: S') ။ "]" ";
$ logmessage ။ = "အမှား -" ။ $ e-> getMessage () ။ php_eol;
$ logmessage ။ = "ဖိုင်တွင် -" ။ $ e-> getfile () ။ "လိုင်းပေါ်တွင်" ။ $ e-> getles () ။ php_eol;
$ logmessage ။ = "stack trace:" ။ php_eol ။ $ e-> gettraceasstring () ။ php_eol;
$ logmessage ။ = strow_repeat ("-" 80) ။ php_eol;
file_put_contents($logFile, $logMessage, FILE_APPEND);
}
function ကိုခွဲဝေ ($ a, $ ခ) {
လျှင် ($ ခ === 0) {
အသစ်ချွင်းချက်အသစ် ("divisor 0 င်မဖြစ်နိုင်ပါ");
}
$ A / $ b ကိုပြန်သွားပါ။
}
ကြိုးစားကြည့်ပါ
$ ရလဒ် = divide (10, 0);
} ဖမ်းမိခြင်း (ခြွင်းချက် $ င) {
Logerrortofile ($ E),
ECHO "အမှားတစ်ခုဖြစ်ပါတယ်။ ကျေးဇူးပြု. မှတ်တမ်းဖိုင်ကိုကြည့်ပါ။ " ။ php_eol;
}
</ code>
တခါတရံတွင်စည်းလုံးသောစီမံခန့်ခွဲမှုအတွက်ဝေးလံခေါင်သီသောဆာဗာများသို့အမှားအယွင်းများပို့လိုသည်။ ဤကိစ္စတွင်သင်သည် log infaction ကို Remote interface သို့ pushing လုပ်ရန် file_get_contlys သို့မဟုတ် curl ကို သုံးနိုင်သည်။
<Code> function senderrortortemeemote (ချွင်းချက် $ င) {$ log = ['အချိန်' = & GT; နေ့စွဲ ('YMD H: i: S'), 'Message' = & GT; $ E- & GT; GetMessage (), ဖိုင် '= & GT; $ E- & GT; GetFile (), 'line' = & gt; $ E- & GT; getline (), 'trace' = GT; $ E- & GT; gettraceasstring ()]; $json = json_encode($log);
$ch = curl_init('https://gitbox.net/api/error-report');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
}
</ code>
log rotation : log file ကိုအကန့်အသတ်မရှိတိုးပွားစေရန်သေချာစေပါ။ Likotate Tool ကိုသင်ပေါင်းစပ်။ သို့မဟုတ် PHP တွင်ဖိုင်အရွယ်အစားစစ်ဆေးမှုများကိုသတ်မှတ်နိုင်သည်။
Errority Level Distincution - ကွဲပြားခြားနားသောပြင်းထန်မှုအဆင့်၏မှတ်တမ်းများကိုခြွင်းချက်အမျိုးအစားသို့မဟုတ်စိတ်ကြိုက်အဆင့်အပေါ် အခြေခံ. မှတ်တမ်းတင်ထားသည်။
လုံခြုံရေး - ဒေတာဘေ့စ်စကားဝှက်များသို့မဟုတ်အသုံးပြုသူသီးသန့်တည်ရှိမှုအချက်အလက်ကဲ့သို့သောအထိခိုက်မခံသောသတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းကိုရှောင်ကြဉ်ပါ။
ExtreacabsString () question call stack use use ကိုဖတ်နိုင်သောကြိုးများသို့လျင်မြန်စွာပြောင်းလဲရန် () useable strings များထဲသို့လျင်မြန်စွာပြောင်းလဲရန်နှင့်ပြောင်းလွယ်ပြင်လွယ်အမှားသစ်ထုတ်လုပ်ရေးယန္တရားကိုအကောင်အထည်ဖော်နိုင်သည့်အကောင်အထည်ဖော်ခြင်းလုပ်ငန်းများနှင့်ပေါင်းစပ်နိုင်သည်။ ၎င်းသည်ဒေသတွင်း debugging ကိုလွယ်ကူချောမွေ့စေရုံသာမကဝေးလံခေါင်သီသောစောင့်ကြည့်လေ့လာခြင်းနှင့်နှိုးစက်များ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးသည်။ PHP မှပေးသောချွင်းချက်ကိုင်တွယ်သည့်ယန္တရားကိုပြောင်းလွယ်ပြင်လွယ်အသုံးပြုခြင်းသည်သင်၏စီမံကိန်း၏တည်ငြိမ်မှုကိုစောင့်ရှောက်လိမ့်မည်။