📄 syslog.xs
字号:
#include "EXTERN.h"#include "perl.h"#include "XSUB.h"#ifdef USE_PPPORT_H# include "ppport.h"#endif#ifndef HAVE_SYSLOG#define HAVE_SYSLOG 1#endif#if defined(I_SYSLOG) || PATCHLEVEL < 6#include <syslog.h>#endif#if defined(_WIN32) && !defined(__CYGWIN__)#undef HAVE_SYSLOG#include "fallback/syslog.h"#endifstatic SV *ident_svptr;#include "const-c.inc"MODULE = Sys::Syslog PACKAGE = Sys::Syslog INCLUDE: const-xs.incintLOG_FAC(p) INPUT: int p CODE:#ifdef LOG_FAC RETVAL = LOG_FAC(p);#else croak("Your vendor has not defined the Sys::Syslog macro LOG_FAC"); RETVAL = -1;#endif OUTPUT: RETVALintLOG_PRI(p) INPUT: int p CODE:#ifdef LOG_PRI RETVAL = LOG_PRI(p);#else croak("Your vendor has not defined the Sys::Syslog macro LOG_PRI"); RETVAL = -1;#endif OUTPUT: RETVALintLOG_MAKEPRI(fac,pri) INPUT: int fac int pri CODE:#ifdef LOG_MAKEPRI RETVAL = LOG_MAKEPRI(fac,pri);#else croak("Your vendor has not defined the Sys::Syslog macro LOG_MAKEPRI"); RETVAL = -1;#endif OUTPUT: RETVALintLOG_MASK(pri) INPUT: int pri CODE:#ifdef LOG_MASK RETVAL = LOG_MASK(pri);#else croak("Your vendor has not defined the Sys::Syslog macro LOG_MASK"); RETVAL = -1;#endif OUTPUT: RETVALintLOG_UPTO(pri) INPUT: int pri CODE:#ifdef LOG_UPTO RETVAL = LOG_UPTO(pri);#else croak("Your vendor has not defined the Sys::Syslog macro LOG_UPTO"); RETVAL = -1;#endif OUTPUT: RETVAL#ifdef HAVE_SYSLOGvoidopenlog_xs(ident, option, facility) INPUT: SV* ident int option int facility PREINIT: STRLEN len; char* ident_pv; CODE: ident_svptr = newSVsv(ident); ident_pv = SvPV(ident_svptr, len); openlog(ident_pv, option, facility);voidsyslog_xs(priority, message) INPUT: int priority const char * message CODE: syslog(priority, "%s", message);intsetlogmask_xs(mask) INPUT: int mask CODE: setlogmask(mask);voidcloselog_xs() CODE: closelog(); if (SvREFCNT(ident_svptr)) SvREFCNT_dec(ident_svptr);#endif /* HAVE_SYSLOG */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -