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);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.