بازکردن syslog (openlog)
در PHP برای نوشتن لاگ (Log) می توانیم از «بازکردن syslog» استفاده کنیم. syslog یک سیستم ثبت پیام است. «openlog» اتصال را باز می کند. سپس با «syslog» پیام می فرستیم. در پایان با «closelog» می بندیم. مثل فرستادن گزارش خطا از بازی به دفتر مدرسه.
openlog چیست؟
تابع «openlog(ident, option, facility)» اتصال ثبت کننده سیستم را باز می کند. ident یک برچسب کوتاه است. option رفتار ثبت را تعیین می کند. facility نوع برنامه را مشخص می کند. سپس «syslog» پیام را ثبت می کند و «closelog» اتصال را می بندد.
آرگومان ها و معانی
- ident: یک رشته برچسب برای هر پیام.
- option: یکی یا چندتا مثل LOG_PID، LOG_PERROR، LOG_CONS، LOG_NDELAY، LOG_ODELAY.
- facility: نوع برنامه؛ مثل LOG_AUTH، LOG_MAIL، LOG_USER و ...
نکته: در ویندوز فقط LOG_USER معتبر است.
نمونه کد ساده (بازکردن syslog)
<?php
function write_error_log(string $text): void {
openlog("phperrors", LOG_PID | LOG_PERROR, LOG_USER);
syslog(LOG_ERR, $text);
closelog();
}
write_error_log("Something went wrong!");
?>
نمونه با facility دیگر
<?php
function app_log(string $text): void {
openlog("myapp", LOG_PID, LOG_MAIL);
syslog(LOG_INFO, $text);
closelog();
}
app_log("Mail module started.");
?>
گام های عملی
- یک ident کوتاه انتخاب کن؛ مثل نام پروژه.
- گزینه های option را تعیین کن؛ مثلاً LOG_PID.
- facility مناسب را برگزین؛ ویندوز: LOG_USER.
- با
openlogباز کن و باsyslogپیام بده. - در پایان حتماً
closelogرا صدا بزن.
نکات پلتفرم و منابع
برای جزئیات بیشتر، مستندات PHP: openlog و فهرست سطوح syslog را ببین.
برای کار با پیام های بعدی هم صفحه های syslog() و closelog() را مطالعه کن.
جمع بندی سریع
- openlog اتصال syslog را باز می کند.
- ident برچسب پیام هاست.
- option رفتار لاگ را تنظیم می کند.
- facility نوع برنامه را مشخص می کند.
- در ویندوز فقط LOG_USER مجاز است.