syslog --- روالهای کتابخانهای syslog یونیکس¶
این ماژول رابطی به روتینهای کتابخانه syslog در Unix فراهم میکند. برای شرحی دقیق از امکانات syslog به صفحات راهنمای Unix مراجعه کنید.
دسترسپذیری: Unix, not WASI, not iOS.
این ماژول، خانوادهای از روالهای سیستمی syslog را پوشش میدهد. یک کتابخانهی پایتون خالص که میتواند با یک سرور syslog ارتباط برقرار کند، در ماژول logging.handlers بهعنوان SysLogHandler در دسترس است.
این ماژول توابع زیر را تعریف میکند:
- syslog.syslog(message)¶
- syslog.syslog(priority, message)
رشتهی message را به گزارشگیر سیستم ارسال کنید. در صورت لزوم، یک خط جدید به انتها اضافه میشود. هر پیام با اولویتی متشکل از امکانات (facility) و سطح (level) برچسبگذاری میشود. آرگومان اختیاری priority، که پیشفرض آن
LOG_INFOاست، اولویت پیام را تعیین میکند. اگر امکانات با استفاده از یا منطقی (LOG_INFO | LOG_USER) در priority کدگذاری نشده باشد، از مقدار دادهشده در فراخوانیopenlog()استفاده میشود.If
openlog()has not been called prior to the call tosyslog(),openlog()will be called with no arguments.یک رویداد حسابرسی
syslog.syslogرا با آرگومانهایpriorityوmessageپرتاب میکند.تغییر یافته در نسخهی 3.2: In previous versions,
openlog()would not be called automatically if it wasn't called prior to the call tosyslog(), deferring to the syslog implementation to callopenlog().تغییر یافته در نسخهی 3.12: This function is restricted in subinterpreters. (Only code that runs in multiple interpreters is affected and the restriction is not relevant for most users.)
openlog()must be called in the main interpreter beforesyslog()may be used in a subinterpreter. Otherwise it will raiseRuntimeError.
- syslog.openlog([ident[, logoption[, facility]]])¶
Logging options of subsequent
syslog()calls can be set by callingopenlog().syslog()will callopenlog()with no arguments if the log is not currently open.آرگومان کلیدواژهای اختیاری ident رشتهای است که به ابتدای هر پیام اضافه میشود و مقدار پیشفرض آن
sys.argv[0]است، با حذف اجزای ابتدایی مسیر. آرگومان کلیدواژهای اختیاری logoption (مقدار پیشفرض آن ۰ است) یک فیلد بیتی است — برای مشاهدهی مقادیر قابل ترکیب، به بخش زیر مراجعه کنید. آرگومان کلیدواژهای اختیاری facility (مقدار پیشفرض آنLOG_USERاست) مقدار پیشفرض facility را برای پیامهایی که facility آنها بهطور صریح کدگذاری نشده است، تعیین میکند.یک رویداد حسابرسی
syslog.openlogرا با آرگومانهایident،logoptionوfacilityپرتاب میکند.تغییر یافته در نسخهی 3.2: در نسخههای پیشین، آرگومانهای کلیدواژهای مجاز نبودند و ident الزامی بود.
تغییر یافته در نسخهی 3.12: این تابع در زیرمفسرها محدود شده است. (فقط کدی که در چندین مفسر اجرا میشود، تحت تأثیر قرار میگیرد و این محدودیت برای بیشتر کاربران مرتبط نیست.) این تابع فقط میتواند در مفسر اصلی فراخوانی شود. اگر در یک زیرمفسر فراخوانی شود،
RuntimeErrorرا پرتاب میکند.
- syslog.closelog()¶
مقادیر ماژول syslog را بازنشانی میکند و
closelog()کتابخانهی سیستم را فراخوانی میکند.This causes the module to behave as it does when initially imported. For example,
openlog()will be called on the firstsyslog()call (ifopenlog()hasn't already been called), and ident and otheropenlog()parameters are reset to defaults.یک رویداد حسابرسی
syslog.closelogرا بدون آرگومان پرتاب میکند.تغییر یافته در نسخهی 3.12: این تابع در زیرمفسرها محدود شده است. (فقط کدی که در چندین مفسر اجرا میشود، تحت تأثیر قرار میگیرد و این محدودیت برای بیشتر کاربران مرتبط نیست.) این تابع فقط میتواند در مفسر اصلی فراخوانی شود. اگر در یک زیرمفسر فراخوانی شود،
RuntimeErrorرا پرتاب میکند.
- syslog.setlogmask(maskpri)¶
Set the priority mask to maskpri and return the previous mask value. Calls to
syslog()with a priority level not set in maskpri are ignored. The default is to log all priorities. The functionLOG_MASK(pri)calculates the mask for the individual priority pri. The functionLOG_UPTO(pri)calculates the mask for all priorities up to and including pri.یک رویداد حسابرسی
syslog.setlogmaskرا با آرگومانmaskpriپرتاب میکند.
این ماژول ثابتهای زیر را تعریف میکند:
- syslog.LOG_EMERG¶
- syslog.LOG_ALERT¶
- syslog.LOG_CRIT¶
- syslog.LOG_ERR¶
- syslog.LOG_WARNING¶
- syslog.LOG_NOTICE¶
- syslog.LOG_INFO¶
- syslog.LOG_DEBUG¶
سطوح اولویت (از بالا به پایین).
- syslog.LOG_AUTH¶
- syslog.LOG_AUTHPRIV¶
- syslog.LOG_CRON¶
- syslog.LOG_DAEMON¶
- syslog.LOG_FTP¶
- syslog.LOG_INSTALL¶
- syslog.LOG_KERN¶
- syslog.LOG_LAUNCHD¶
- syslog.LOG_LPR¶
- syslog.LOG_MAIL¶
- syslog.LOG_NETINFO¶
- syslog.LOG_NEWS¶
- syslog.LOG_RAS¶
- syslog.LOG_REMOTEAUTH¶
- syslog.LOG_SYSLOG¶
- syslog.LOG_USER¶
- syslog.LOG_UUCP¶
- syslog.LOG_LOCAL0¶
- syslog.LOG_LOCAL1¶
- syslog.LOG_LOCAL2¶
- syslog.LOG_LOCAL3¶
- syslog.LOG_LOCAL4¶
- syslog.LOG_LOCAL5¶
- syslog.LOG_LOCAL6¶
- syslog.LOG_LOCAL7¶
امکانات، بسته به دسترسیپذیری در
<syslog.h>برایLOG_AUTHPRIV،LOG_FTP،LOG_NETINFO،LOG_REMOTEAUTH،LOG_INSTALLوLOG_RAS.تغییر یافته در نسخهی 3.13:
LOG_FTP،LOG_NETINFO،LOG_REMOTEAUTH،LOG_INSTALL،LOG_RASوLOG_LAUNCHDافزوده شدند.
- syslog.LOG_PID¶
- syslog.LOG_CONS¶
- syslog.LOG_NDELAY¶
- syslog.LOG_ODELAY¶
- syslog.LOG_NOWAIT¶
- syslog.LOG_PERROR¶
گزینههای گزارش، بسته به دسترسیپذیری در
<syslog.h>برایLOG_ODELAY،LOG_NOWAITوLOG_PERROR.
مثالها¶
مثال ساده¶
مجموعهای ساده از مثالها:
import syslog
syslog.syslog('Processing started')
if error:
syslog.syslog(syslog.LOG_ERR, 'Processing started')
نمونهای از تنظیم چند گزینهی گزارش؛ این گزینهها شناسهی فرایند را در پیامهای گزارششده درج میکنند و پیامها را به دستهی گزارش مقصد مورد استفاده برای گزارش ایمیل مینویسند:
syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')