လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Syslog function ကိုအသုံးပြုနည်း server-level အမှားမှတ်တမ်းများကိုမှတ်တမ်းတင်ရန်မည်သို့အသုံးပြုရမည်နည်း။

Syslog function ကိုအသုံးပြုနည်း server-level အမှားမှတ်တမ်းများကိုမှတ်တမ်းတင်ရန်မည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-06-23

1 ။ syslog () function ကိုမိတ်ဆက်

SYSLOG () သည် PHP တွင်ပါ 0 င်သော PHP တွင်ပါ 0 င်သော function တစ်ခုဖြစ်သည်။ ဖိုင်မှတ်တမ်းများ, SYSLOG () သို့တိုက်ရိုက်ရေးသားခြင်းနှင့်မတူဘဲမှတ်တမ်းများကို operating system ၏ log files (ဥပမာ / var / log / syslog သို့မဟုတ် / var / line / var / log / line / message ) သို့မှတ်တမ်းတင်လိမ့်မည်။

2 ။ Syslog () function ကိုအသုံးပြုခြင်း၏အခြေခံ Syntax

SYSLOG () function ၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">syslog</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$priority</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$message</span></span><span>);
</span></span>
  • $ ဦး စားပေး - မှတ်တမ်းမက်ဆေ့ခ်ျများ ဦး စားပေး။ PHP မှထောက်ပံ့သော ဦး စားပေးအဆင့်များသည် -

    • log_emerg : စနစ်မရရှိနိုင်ပါ

    • log_alert : ချက်ချင်းတိုင်းတာမှုများလိုအပ်သည်

    • Log_crit : ဝေဖန်အမှား

    • log_err : အထွေထွေအမှား

    • Log_warning : သတိပေးစာ

    • log_notice : ပုံမှန်ဖြစ်သော်လည်းအရေးကြီးသောအဖြစ်အပျက်

    • log_info : အထွေထွေသတင်းအချက်အလက်

    • Log_Debug : Debug သတင်းအချက်အလက်

  • $ message : များသောအားဖြင့် string type ၏မှတ်တမ်းတင်ခံရမည့်မှတ်တမ်းစာကိုမှတ်တမ်းတင်ရန်။

3 ။ SDSLOG ကို configure

Syslog () PHP တွင်) PHP တွင် PHP တွင်ဖွင့်ထားသည့်အတွက် OpenLog () function ကိုခေါ်ရန်လိုအပ်သည်။ OpenLog () Log အမှတ်အသား, မှတ်တမ်းအမျိုးအစားနှင့် log processing ၏ ဦး စားပေးကိုသတ်မှတ်ပါ။

 <span><span><span class="hljs-title function_ invoke__">openlog</span></span><span>(</span><span><span class="hljs-string">'myApp'</span></span><span>, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
</span></span>

parameter သည်ဖော်ပြချက်:

  • 'MYApp' : သင်၏လျှောက်လွှာ၏အမည်ဖြစ်သော log identifier သည်မတူညီသော application များ၏မှတ်တမ်းများကိုခွဲခြားရန်ကူညီသည်။

  • log_cons : system log မရရှိနိုင်ပါက, စံပြအမှားမှ output ကို။

  • Log_pid : မှတ်တမ်းတစ်ခုစီအတွက် process ID တွင်ပါ 0 င်သည်။

  • log_ndelay : log session ကိုချက်ချင်းဖွင့်ပါ။ Log Information ကိုမစတင်မီမှတ်တမ်းအချက်အလက်ကိုရေးသည်အထိမစောင့်ပါနှင့်။

  • log_local1 : log အမျိုးအစားကို သတ်မှတ် ပါ ,

4 ။ မှတ်တမ်းအမှားမှတ်တမ်း

ပုံမှန်အားဖြင့်ခြွင်းချက်သို့မဟုတ်အမှားတစ်ခုအပြီးတွင် logging error logs များကိုဖမ်းမိသည်။ ဒေတာဘေ့စ်ဆက်သွယ်မှုမအောင်မြင်ပါကသင်၏ PHP လျှောက်လွှာတွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုလည်ပတ်မှုတစ်ခုရှိသည်ဟုယူဆပါ။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">openlog</span></span><span>(</span><span><span class="hljs-string">'myApp'</span></span><span>, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

</span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-comment">// ဒေတာဘေ့စ် connection အတွက်ကုဒ်လို့ယူဆတယ်</span></span><span>
    </span><span><span class="hljs-variable">$db</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb'</span></span><span>, </span><span><span class="hljs-string">'root'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>);
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-title function_ invoke__">syslog</span></span><span>(LOG_ERR, </span><span><span class="hljs-string">'Database connection failed: '</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>());
}

</span><span><span class="hljs-title function_ invoke__">closelog</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

အထက်ပါကုဒ်တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုမအောင်မြင်ပါက syslog () function သည်အမှားအယွင်းကိုစနစ်မှတ်တမ်းသို့မှတ်တမ်းတင်လိမ့်မည်။ log_err ၏ ဦး စားပေးဆိုလိုသည်မှာ၎င်းသည်အထွေထွေအမှားဖြစ်သည်။

5 ။ ထုံးစံမှတ်တမ်းများကိုမှတ်တမ်းတင်ပါ

အမှားမက်ဆေ့ခ်ျများမှတ်တမ်းတင်ခြင်းအပြင် Syslog () သည် application status, key operations စသည်စသည့်အထွေထွေအချက်အလက်များကိုမှတ်တမ်းတင်ရန်လည်းအသုံးပြုနိုင်သည်။ ဥပမာ -

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">openlog</span></span><span>(</span><span><span class="hljs-string">'myApp'</span></span><span>, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

</span><span><span class="hljs-title function_ invoke__">syslog</span></span><span>(LOG_INFO, </span><span><span class="hljs-string">'Application started successfully.'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">syslog</span></span><span>(LOG_NOTICE, </span><span><span class="hljs-string">'User logged in with ID: 12345.'</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">closelog</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဤကုဒ်သည်သတင်းအချက်အလက်အဆင့်မှတ်တမ်းများကိုမည်သို့မှတ်တမ်းတင်ရမည်ကိုပြသသည်။ Log_info သည် အထွေထွေသတင်းအချက်အလက်ကိုကိုယ်စားပြုသည်

6 ။ အဆင့်မြင့်အသုံးပြုမှု: စိတ်ကြိုက်မှတ်တမ်းပုံစံ

SYSLOG () function ကိုယ်နှိုက်ကထုံးစံမှတ်တမ်းပုံစံများကိုမပံ့ပိုးပါ။ သို့သော်မှတ်တမ်းမပို့မီမက်ဆေ့ခ်ျများကိုကိုယ်တိုင်အပြီးကိုယ်တိုင်ရိုက်နိုင်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">openlog</span></span><span>(</span><span><span class="hljs-string">'myApp'</span></span><span>, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

</span><span><span class="hljs-variable">$userId</span></span><span> = </span><span><span class="hljs-number">12345</span></span><span>;
</span><span><span class="hljs-variable">$action</span></span><span> = </span><span><span class="hljs-string">'User logged in'</span></span><span>;
</span><span><span class="hljs-variable">$logMessage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">'UserID: %d - Action: %s'</span></span><span>, </span><span><span class="hljs-variable">$userId</span></span><span>, </span><span><span class="hljs-variable">$action</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">syslog</span></span><span>(LOG_NOTICE, </span><span><span class="hljs-variable">$logMessage</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">closelog</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဤနေရာတွင်ကျွန်ုပ်တို့သည် logrintf () function ကို dynamically log လုပ်ခြင်းကို dynamically ထုတ်ပေးရန်နှင့် Syslog () ကို string တစ်ခုအဖြစ်ဖြတ်သွားသည်။

7 ။ syslog ၏ output တည်နေရာကို configure

Syslog မှမှတ်တမ်းတင်ထားသောအချက်အလက်များကိုများသောအားဖြင့် system log file သို့စာဖြင့်ရေးသားလေ့ရှိသည်။ system configuration file in log ၏ output တည်နေရာကိုသင်သတ်မှတ်နိုင်သည်။ Linux Systems တွင် logs များကိုများသောအားဖြင့် / var / log / syslog သို့မဟုတ် / var / log / message များ၌သိုလှောင်ထားသည်။

မှတ်တမ်းများကိုကြည့်ရှုနိုင်သည်။

 <span><span><span class="hljs-built_in">tail</span></span><span> -f /var/log/syslog
</span></span>

8 ။ မကြာခဏမေးလေ့ရှိတဲ့မေးခွန်းများနှင့်ဖြေရှင်းနည်းများ

  • WROM မှမရေးပါနှင့် - Syslog ကို PHP configuration file တွင်ဖွင့်ထားပြီး system log file ၏ခွင့်ပြုချက်များကိုစစ်ဆေးပါ။

  • အလွန်ကြီးမားသောမှတ်တမ်းဖိုင်များ - ရေရှည်သစ်ထုတ်လုပ်ခြင်းသည် log files များကိုအလွန်ကြီးမားလာစေနိုင်သည်။ သစ်လုံးအဟောင်းများကို log rotation ယန္တရားမှတဆင့်ပုံမှန်အားဖြင့်သန့်ရှင်းရေးနှင့်မော်ဒယ်များကိုပုံမှန်သိမ်းဆည်းနိုင်သည်။

  • မှတ်တမ်းခွင့်ပြုချက်ပြ issue နာ - PHP လုပ်ငန်းခွင်သည်အချက်အလက်မှတ်တမ်းသို့သတင်းအချက်အလက်များကိုရေးရန်လုံလောက်သောခွင့်ပြုချက်ရှိကြောင်းသေချာစေပါ။ ခွင့်ပြုချက်သည်မလုံလောက်ပါက system log file ၏ခွင့်ပြုချက်များကိုသင်ညှိရန်လိုကောင်းလိုပေမည်။