21static VALUE mSyslogConstants;
23static VALUE mSyslogOption;
25static VALUE mSyslogFacility;
27static VALUE mSyslogLevel;
29static VALUE mSyslogMacros;
31static const char *syslog_ident =
NULL;
32static int syslog_options = -1, syslog_facility = -1, syslog_mask = -1;
33static int syslog_opened = 0;
64 xfree((
void *)syslog_ident);
66 syslog_options = syslog_facility = syslog_mask = -1;
152 VALUE ident, opt, fac;
153 const char *ident_ptr;
165 syslog_ident =
strdup(ident_ptr);
168 syslog_options = LOG_PID | LOG_CONS;
174 syslog_facility = LOG_USER;
176 syslog_facility =
NUM2INT(fac);
179 openlog(syslog_ident, syslog_options, syslog_facility);
183 setlogmask(syslog_mask = setlogmask(0));
206 return mSyslog_open(
argc,
argv,
self);
230 return syslog_opened ?
INT2NUM(syslog_options) :
Qnil;
237 return syslog_opened ?
INT2NUM(syslog_facility) :
Qnil;
245 return syslog_opened ?
INT2NUM(syslog_mask) :
Qnil;
265 if (!syslog_opened) {
327 return rb_sprintf(
"<#%"PRIsVALUE": opened=true, ident=\"%s\", options=%d, facility=%d, mask=%d>",
342#define define_syslog_shortcut_method(pri, name) \
343static VALUE mSyslog_##name(int argc, VALUE *argv, VALUE self) \
345 syslog_write((pri), argc, argv); \
447#define rb_define_syslog_option(c) \
448 rb_define_const(mSyslogOption, #c, INT2NUM(c))
471#define rb_define_syslog_facility(c) \
472 rb_define_const(mSyslogFacility, #c, INT2NUM(c))
546#define rb_define_syslog_level(c, m) \
547 rb_define_const(mSyslogLevel, #c, INT2NUM(c)); \
548 rb_define_module_function(mSyslog, #m, mSyslog_##m, -1)
char str[HTML_ESCAPE_MAX_LEN+1]
void rb_include_module(VALUE, VALUE)
void rb_extend_object(VALUE, VALUE)
Extend the object with the module.
VALUE rb_define_module(const char *)
VALUE rb_define_module_under(VALUE, const char *)
int rb_block_given_p(void)
Determines if the current method is given a block.
void rb_raise(VALUE exc, const char *fmt,...)
VALUE rb_ensure(VALUE(*)(VALUE), VALUE, VALUE(*)(VALUE), VALUE)
An equivalent to ensure clause.
VALUE rb_obj_class(VALUE)
Equivalent to Object#class in Ruby.
#define rb_define_syslog_option(c)
#define define_syslog_shortcut_method(pri, name)
#define rb_define_syslog_level(c, m)
#define rb_define_syslog_facility(c)