- unstable 4.31.0-1
| syslog(3) | Library Functions Manual | syslog(3) |
الاسم¶
closelog, openlog, syslog, vsyslog - إرسال الرسائل إلى مسجل النظام
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <syslog.h>
void openlog(const char *ident, int option, int facility); void syslog(int priority, const char *format, ...); void closelog(void);
void vsyslog(int priority, const char *format, va_list ap);
vsyslog():
منذ glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 وما قبله:
_BSD_SOURCE
الوصف¶
openlog()¶
تفتح openlog() اتصالاً بمسجل النظام لبرنامج.
تُسبق السلسلة المحارف المشار إليها بواسطة ident بكل رسالة، وعادةً ما تُضبط على اسم البرنامج. إذا كان ident فارغًا (NULL)، يُستخدم اسم البرنامج. (لا يحدد POSIX.1-2008 السلوك عندما يكون ident فارغًا.)
يحدد معامل option الأعلام التي تتحكم في تشغيل openlog() والاستدعاءات اللاحقة لـ syslog(). يُنشئ معامل facility قيمة مبدئية تُستخدم إذا لم يُحدد أي شيء في الاستدعاءات اللاحقة لـ syslog(). القيم التي يمكن تحديدها لـ option و facility موصوفة أدناه.
استخدام openlog() اختياري؛ تُستدعى آليًا بواسطة syslog() إذا لزم الأمر، وفي هذه الحالة يكون ident مبدئيًا فارغًا (NULL).
syslog() و vsyslog()¶
تولد syslog() رسالة سجل، تُوزع بواسطة syslogd(8).
يُشكل معامل priority عن طريق إجراء عملية OR بين قيمة facility وقيمة level (موصوفة أدناه). إذا لم تُدمج قيمة facility في priority، تُستخدم القيمة المبدئية المُعينة بواسطة openlog()، أو إذا لم يكن هناك استدعاء سابق لـ openlog()، يُستخدم المبدئي LOG_USER.
الوسائط المتبقية هي format، كما في printf(3)، وأي وسائط مطلوبة بواسطة format، باستثناء أن تسلسل الحرفين %m يُستبدل بسلسلة محارف رسالة الخطأ strerror(errno). لا تحتاج سلسلة محارف التنسيق إلى تضمين حرف سطر جديد ختامي.
تؤدي الدالة vsyslog() نفس مهمة syslog() مع الفرق أنها تأخذ مجموعة من الوسائط التي حُصل عليها باستخدام وحدات ماكرو قائمة الوسائط المتغيرة stdarg(3).
closelog()¶
تغلق closelog() واصف الملف المستخدم للكتابة إلى مسجل النظام. استخدام closelog() اختياري.
قيم option¶
معامل option لـ openlog() هو قناع بتات يُبنى بإجراء عملية OR بين أي من القيم التالية:
- LOG_CONS
- الكتابة مباشرة إلى وحدة التحكم النظامية إذا حدث خطأ أثناء الإرسال إلى مسجل النظام.
- LOG_NDELAY
- افتح الاتصال فورًا (عادةً، يُفتح الاتصال عند تسجيل أول رسالة). قد يكون هذا مفيدًا، على سبيل المثال، إذا كان استدعاء chroot(2) لاحقًا سيجعل اسم المسار المستخدم داخليًا بواسطة مرفق التسجيل غير قابل للوصول.
- LOG_NOWAIT
- لا تنتظر العمليات الفرعية التي قد تكون أُنشئت أثناء تسجيل الرسالة. (مكتبة C لجنو لا تنشئ عملية فرعية، لذا ليس لهذا الخيار أي تأثير على لينكس.)
- LOG_ODELAY
- عكس LOG_NDELAY؛ يُؤخر فتح الاتصال حتى يُستدعى syslog(). (هذا هو المبدئي، ولا يلزم تحديده.)
- LOG_PERROR
- (ليس في POSIX.1-2001 أو POSIX.1-2008.) سجل الرسالة أيضًا إلى stderr.
- LOG_PID
- أدرج PID للمستدعي مع كل رسالة.
قيم facility¶
يُستخدم معامل facility لتحديد نوع البرنامج الذي يسجل الرسالة. يتيح هذا لملف الإعدادات تحديد أن الرسائل من مرافق مختلفة ستُعالج بشكل مختلف.
- LOG_AUTH
- رسائل الأمن/الاستيثاق
- LOG_AUTHPRIV
- رسائل الأمن/الاستيثاق (خاصة)
- LOG_CRON
- برنامج خفي للساعة (cron و at)
- LOG_DAEMON
- برامج خفي للنظام بدون قيمة مرفق منفصلة
- LOG_FTP
- خادوم ftp
- LOG_KERN
- رسائل النواة (لا يمكن توليدها من عمليات المستخدم)
- LOG_LOCAL0 حتى LOG_LOCAL7
- محجوز للاستخدام المحلي
- LOG_LPR
- النظام الفرعي للطابعة السطرية
- LOG_MAIL
- النظام الفرعي للبريد
- LOG_NEWS
- النظام الفرعي لأخبار USENET
- LOG_SYSLOG
- رسائل وُلّدت داخليًا بواسطة syslogd(8)
- LOG_USER (مبدئي)
- رسائل عامة على مستوى المستخدم
- LOG_UUCP
- النظام الفرعي لـ UUCP
قيم المستوى¶
يحدد هذا أهمية الرسالة. المستويات هي، بترتيب تناقص الأهمية:
- LOG_EMERG
- النظام غير قابل للاستخدام
- LOG_ALERT
- يجب اتخاذ إجراء فوري
- LOG_CRIT
- ظروف حرجة
- LOG_ERR
- ظروف خطأ
- LOG_WARNING
- ظروف تحذير
- LOG_NOTICE
- حالة عادية، لكنها مهمة
- LOG_INFO
- رسالة إعلامية
- LOG_DEBUG
- رسالة مستوى التصحيح
يمكن استخدام الدالة setlogmask(3) لتقييد التسجيل بمستويات محددة فقط.
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| openlog(), closelog() | سلامة الخيوط | MT-Safe |
| syslog(), vsyslog() | سلامة الخيوط | بيئة محلية آمنة لتعدد الخيوط (MT-Safe) |
المعايير¶
- syslog()
- openlog()
- closelog()
- POSIX.1-2008.
- vsyslog()
- لا يوجد.
التاريخ¶
- syslog()
- 4.2BSD، SUSv2، POSIX.1-2001.
- openlog()
- closelog()
- 4.3BSD، SUSv2، POSIX.1-2001.
- vsyslog()
- 4.3BSD-Reno.
يحدد POSIX.1-2001 قيم LOG_USER و LOG_LOCAL* فقط لـ facility. لكن، باستثناء LOG_AUTHPRIV و LOG_FTP، تظهر قيم facility الأخرى في معظم أنظمة UNIX.
قيمة LOG_PERROR للمُعامل option غير مُحدَّدة بواسطة POSIX.1-2001 أو POSIX.1-2008، لكنها متوفرة في معظم إصدارات UNIX.
ملاحظات¶
الوسيط ident في استدعاء openlog() يُخزَّن على الأرجح كما هو. وبالتالي، إذا تغيرت سلسلة المحارف التي يشير إليها، فقد يبدأ syslog() بإضافة السلسلة المتغيرة في البداية، وإذا زالت سلسلة المحارف التي يشير إليها عن الوجود، تكون النتائج غير مُعرَّفة. الأكثر قابلية للنقل هو استخدام ثابت سلسلة محارف.
لا تمرر أبدًا سلسلة محارف تحتوي على بيانات مقدمة من المستخدم كصيغة، بل استخدم ما يلي بدلاً من ذلك:
syslog(priority, "%s", string);
انظر أيضًا¶
journalctl(1)، logger(1)، setlogmask(3)، syslog.conf(5)، syslogd(8)
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 8 فبراير 2026 | صفحات دليل لينكس 6.18 |