4 * XS wrapper for the syslog(3) facility.
23 #if defined(_WIN32) && !defined(__CYGWIN__)
25 # include "fallback/syslog.h"
27 # if defined(I_SYSLOG) || PATCHLEVEL < 6
32 static SV *ident_svptr;
36 #define LOG_FACMASK 0x03f8
37 #define LOG_FAC(p) (((p) & LOG_FACMASK) >> 3)
41 #define LOG_PRIMASK 0x07
45 #define LOG_PRI(p) ((p) & LOG_PRIMASK)
49 #define LOG_MAKEPRI(fac, pri) (((fac) << 3) | (pri))
53 #define LOG_MASK(pri) (1 << (pri))
57 #define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1)
60 #include "const-c.inc"
63 MODULE = Sys::Syslog PACKAGE = Sys::Syslog
96 openlog_xs(ident, option, facility)
105 ident_svptr = newSVsv(ident);
106 ident_pv = SvPV(ident_svptr, len);
107 openlog(ident_pv, option, facility);
110 syslog_xs(priority, message)
115 syslog(priority, "%s", message);
122 RETVAL = setlogmask(mask);
134 refcnt = SvREFCNT(ident_svptr);
136 SvREFCNT_dec(ident_svptr);
141 #else /* HAVE_SYSLOG */
144 openlog_xs(ident, option, facility)
152 syslog_xs(priority, message)
168 #endif /* HAVE_SYSLOG */