လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: debug output ကို Remote Log Server သို့ log လုပ်နည်း။ အသေးစိတ်အကောင်အထည်ဖော်မှုနည်းလမ်းခွဲခြမ်းစိတ်ဖြာခြင်း

MySQLI :: debug output ကို Remote Log Server သို့ log လုပ်နည်း။ အသေးစိတ်အကောင်အထည်ဖော်မှုနည်းလမ်းခွဲခြမ်းစိတ်ဖြာခြင်း

M66 2025-06-05

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည် MySQL ဒေတာဘေ့စ်၏လုပ်ငန်းများကိုဖျက်သိမ်းရန်လိုအပ်လေ့ရှိသည်။ MySQLI :: Debug သည် သတင်းအချက်အလက်များကိုထုတ်လွှင့်ခြင်းအားထုတ်ဖော်နိုင်သည့်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ MySQLI :: Debug Debug မှ အချက်အလက်များကို debrapher သို့မဟုတ် console သို့ debug လုပ်ရန် debugge debug ကို debuggught လုပ်ပါ။ တခါတရံတွင်ကျွန်ုပ်တို့သည်နောင်အနာဂတ်တွင်ပိုမိုလွယ်ကူစွာပြ troubl နာဖြေရှင်းခြင်းနှင့်ခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်ဝေးလံခေါင်သီသောမှတ်တမ်းဆာဗာသို့ဤအချက်အလက်ကိုသိမ်းဆည်းရန်လိုအပ်သည်။

MySQLI :: Debug output ကို Remote log server သို့မည်သို့မှတ်တမ်းတင်နိုင်မည်ကိုအသေးစိတ်ရှင်းပြပါမည်။ တိကျသောအကောင်အထည်ဖော်မှုဖြစ်စဉ်ကိုပြသရန်ကုဒ်များဥပမာများကိုအသုံးပြုပါ။

1 ။ MySQLI :: Debug ခြုံငုံသုံးသပ်ချက်

MySQLI :: Debug သည် MySQL ၏ debugging function ကို enable လုပ်ရန် PHP ရှိနည်းလမ်းတစ်ခုဖြစ်သည်။ SQL ထုတ်ပြန်ချက်များ, ကွပ်မျက်ရေးအချိန်,

အသုံးပြုမှုဥပမာ:

 mysqli::debug("d:t:o,/tmp/mysql_trace.log");

အထက်ဖော်ပြပါကုဒ်သည် MySQL ၏ debugging function ကို enable လုပ်ပြီး debugging အချက်အလက်များကိုသတ်မှတ်ထားသောဖိုင် ( /tmp/mysql_trace.log ) သို့သိမ်းဆည်းပါလိမ့်မည်။

2 ။ MySQLI :: RETORED LOG server သို့ debug output ကို redirect

Remote Log Server သို့ Debug သတင်းအချက်အလက်ပေးပို့ရန်အတွက်၎င်းကိုအောက်ပါနည်းလမ်းများဖြင့်အကောင်အထည်ဖော်နိုင်သည်။

2.1 PHP ၏ Error_log function ကိုအသုံးပြုခြင်း

PHP ၏ Error_log function သည်သတ်မှတ်ထားသောဖိုင်သို့အမှားအယွင်းများသို့မဟုတ် debug အချက်အလက်များကိုရေးသားနိုင်ရန်သို့မဟုတ်ကွန်ယက်ပေါ်တွင်မှတ်တမ်းဆာဗာသို့ပို့နိုင်သည်။ MySQLI :: debug မှ debug သတင်းအချက်အလက် output ကို သုံး. debug ကို error_log function မှတဆင့်ဝေးလံခေါင်သီသောမှတ်တမ်းဆာဗာသို့ပို့နိုင်သည်။

နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php

// Debug Mode ကိုသတ်မှတ်ပါ
mysqli::debug("d:t:o,/tmp/mysql_trace.log");

// ဝေးလံခေါင်သီသောမှတ်တမ်းဆာဗာသို့ output ကို debug အချက်အလက်
function log_to_remote_server($message) {
    $url = 'http://m66.net/log_receiver';  // ဝေးလံသောမှတ်တမ်းဆာဗာ၏ reception ည့်ခံကြောင်းယူဆ URL
    $data = ['log' => $message];
    
    // အသုံးပြု cURL Remote ဆာဗာသို့မှတ်တမ်းများပို့ပါ
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    // တောင်းဆိုမှုကို execute နှင့်တုံ့ပြန်မှုရယူပါ
    $response = curl_exec($ch);
    curl_close($ch);
    
    // လိုအပ်ရင်,အဆိုပါတုံ့ပြန်မှုလုပ်ငန်းများ၌နိုင်ပါတယ်
    if ($response) {
        echo "မှတ်တမ်းကို Remote server သို့အောင်မြင်စွာပို့ခဲ့သည်。\n";
    } else {
        echo "မှတ်တမ်းပို့ရန်မအောင်မြင်ပါ。\n";
    }
}

// အဝေးမှဆာဗာသို့ debug အချက်အလက်ပေးပို့ရန် function ကိုခေါ်ခြင်း
log_to_remote_server("ဤသည် debug သတင်းအချက်အလက်ဥပမာတစ်ခုဖြစ်သည်");

?>

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် http://m66.net/log_receiver သို့ http://m66.net/log_receiver သို့ ပို့ပေးပါ။ အမှန်တကယ်အခြေအနေနှင့်အညီဝေးလံသောမှတ်တမ်းဆာဗာနှင့်ကူးစက်သောအချက်အလက်ပုံစံ၏ URL ကိုသင်ပြုပြင်နိုင်သည်။

2.2 Log Collection tool ကိုအသုံးပြုခြင်း

အကယ်. သင်သည် log collection tools များကိုသုံးပါကသင်၏ system ပေါ်တွင် Log Copy, GrayLog, GrayLog စသည်တို့ကဲ့သို့) သင်၏ system ပေါ်တွင်သင်ဤကိရိယာများမှတစ်ဆင့် Remote ဆာဗာသို့မှတ်တမ်းအချက်အလက်များကိုပေးပို့နိုင်သည်။ များသောအားဖြင့်၎င်းသည်သက်ဆိုင်ရာ log collection 0 န်ဆောင်မှုကို MySQLI :: Debug မှမှတ်တမ်းတင်ခြင်းဆိုင်ရာသတင်းအချက်အလက်ထုတ်လုပ်မှုကို အသုံးပြု. ရှေ့သို့တင်ခြင်းပါဝင်သည်။

ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် log collection tool တစ်ခုကို configure လုပ်ထားပြီးပါပြီဆိုပါစို့, အောက်ပါတို့မှမှတ်တမ်းများကို file_put_Contents မှတစ်ဆင့်ဖိုင်တစ်ခုသို့ရေးရန်ကုဒ်နံပါတ်ဖြစ်သည်။

 <?php

// Debug Mode ကိုဖွင့်ပါ
mysqli::debug("d:t:o,/tmp/mysql_trace.log");

// မှတ်တမ်းများကိုဖိုင်တစ်ခုသို့ရေးပါ
function write_log_to_file($message) {
    $logFile = '/var/log/php_debug.log';
    file_put_contents($logFile, $message . PHP_EOL, FILE_APPEND);
}

// ဖိုင်ရှိမှတ်တမ်းအကြောင်းအရာများကိုဝေးလံခေါင်သီသော log collection server သို့ပို့ပါ
function send_log_to_server($logFile) {
    $url = 'http://m66.net/log_receiver';  // ဝေးလံခေါင်သီသောမှတ်တမ်းဆာဗာကိုယူဆပါ URL
    $logData = file_get_contents($logFile);
    
    // အသုံးပြု cURL Remote ဆာဗာသို့မှတ်တမ်းများပို့ပါ
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, ['log' => $logData]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    if ($response) {
        echo "မှတ်တမ်းကို Remote Log Server သို့အောင်မြင်စွာပို့သည်。\n";
    } else {
        echo "မှတ်တမ်းပို့ရန်မအောင်မြင်ပါ。\n";
    }
}

// မှတ်တမ်းများရေးပြီးပို့ပါ
write_log_to_file("ဤသည် debug မှတ်တမ်းသတင်းအချက်အလက်ဖြစ်ပါတယ်");
send_log_to_server('/var/log/php_debug.log');

?>

ဤဥပမာတွင် log ကို local file သို့ပထမဆုံးရေးသားပြီး curl မှတဆင့်ဝေးလံခေါင်သီသော log collection server သို့ပို့သည်။

3 ။ အကျဉ်းချုပ်

MySQLI :: Remote log server သို့ logging logging debug output သည်အထူးသဖြင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ဒေတာဘေ့စ်ပြ issues နာများကို debing လုပ်သည့်အခါအလွန်အသုံးဝင်သောလှည့်ကွက်တစ်ခုဖြစ်သည်။ ကျွန်ုပ်တို့သည်၎င်းကို PHP ၏ ဆံပင်ကောက်ကောက် function ကိုသို့မဟုတ် log collection tool မှတဆင့်အလွယ်တကူအောင်မြင်နိုင်သည်။ ဤဆောင်းပါးတွင်အကောင်အထည်ဖော်ခြင်းဥပမာများကဤဆောင်းပါးတွင်အကောင်အထည်ဖော်ခြင်းဥပမာများသည်သင့်အားဝေးလံသောမှတ်တမ်းဆာဗာသို့သတင်းအချက်အလက်များကိုမည်သို့ပို့ရမည်ကိုပိုမိုနားလည်ရန်ကူညီလိမ့်မည်ဟုမျှော်လင့်ပါသည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli