လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> GetTreasString ကို အသုံးပြု. PHP တွင် PHP တွင် Custom Logging လုပ်ဆောင်နိုင်စွမ်းကိုမည်သို့ဖန်တီးရမည်နည်း

GetTreasString ကို အသုံးပြု. PHP တွင် PHP တွင် Custom Logging လုပ်ဆောင်နိုင်စွမ်းကိုမည်သို့ဖန်တီးရမည်နည်း

gitbox 2025-06-03

PHP Development တွင်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ပရိုဂရမ်ရေးဆွဲခြင်းသည်ပရိုဂရမ်တည်ငြိမ်မှုနှင့်ပြ problems နာများကိုဖြေရှင်းရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။ PHP သည် Error_log နှင့် Set_error_Handler ကဲ့သို့သောယန္တရားများနှင့်အတူပါ 0 င်သော်လည်း, GetTraceasString () ခြွင်းချက် သင်တန်းတွင်နည်းလမ်းသည်ဤရည်မှန်းချက်အောင်မြင်ရန်ကျွန်ုပ်တို့ကိုကူညီနိုင်သည်။

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>

Remote အမှားမှတ်တမ်း log

တခါတရံတွင်စည်းလုံးသောစီမံခန့်ခွဲမှုအတွက်ဝေးလံခေါင်သီသောဆာဗာများသို့အမှားအယွင်းများပို့လိုသည်။ ဤကိစ္စတွင်သင်သည် 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>

လက်တွေ့ကျသောအကြံပြုချက်များ

  1. log rotation : log file ကိုအကန့်အသတ်မရှိတိုးပွားစေရန်သေချာစေပါ။ Likotate Tool ကိုသင်ပေါင်းစပ်။ သို့မဟုတ် PHP တွင်ဖိုင်အရွယ်အစားစစ်ဆေးမှုများကိုသတ်မှတ်နိုင်သည်။

  2. Errority Level Distincution - ကွဲပြားခြားနားသောပြင်းထန်မှုအဆင့်၏မှတ်တမ်းများကိုခြွင်းချက်အမျိုးအစားသို့မဟုတ်စိတ်ကြိုက်အဆင့်အပေါ် အခြေခံ. မှတ်တမ်းတင်ထားသည်။

  3. လုံခြုံရေး - ဒေတာဘေ့စ်စကားဝှက်များသို့မဟုတ်အသုံးပြုသူသီးသန့်တည်ရှိမှုအချက်အလက်ကဲ့သို့သောအထိခိုက်မခံသောသတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းကိုရှောင်ကြဉ်ပါ။

အကျဉ်းချုပ်

ExtreacabsString () question call stack use use ကိုဖတ်နိုင်သောကြိုးများသို့လျင်မြန်စွာပြောင်းလဲရန် () useable strings များထဲသို့လျင်မြန်စွာပြောင်းလဲရန်နှင့်ပြောင်းလွယ်ပြင်လွယ်အမှားသစ်ထုတ်လုပ်ရေးယန္တရားကိုအကောင်အထည်ဖော်နိုင်သည့်အကောင်အထည်ဖော်ခြင်းလုပ်ငန်းများနှင့်ပေါင်းစပ်နိုင်သည်။ ၎င်းသည်ဒေသတွင်း debugging ကိုလွယ်ကူချောမွေ့စေရုံသာမကဝေးလံခေါင်သီသောစောင့်ကြည့်လေ့လာခြင်းနှင့်နှိုးစက်များ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးသည်။ PHP မှပေးသောချွင်းချက်ကိုင်တွယ်သည့်ယန္တရားကိုပြောင်းလွယ်ပြင်လွယ်အသုံးပြုခြင်းသည်သင်၏စီမံကိန်း၏တည်ငြိမ်မှုကိုစောင့်ရှောက်လိမ့်မည်။