Init for package syslog
static VALUE mSyslogConstants_LOG_MASK(VALUE klass, VALUE pri) { return INT2FIX(LOG_MASK(NUM2INT(pri))); }
static VALUE mSyslogConstants_LOG_UPTO(VALUE klass, VALUE pri) { return INT2FIX(LOG_UPTO(NUM2INT(pri))); }
Syslog module methods
static VALUE mSyslog_close(VALUE self) { rb_secure(4); if (!syslog_opened) { rb_raise(rb_eRuntimeError, "syslog not opened"); } closelog(); free((void *)syslog_ident); syslog_ident = NULL; syslog_options = syslog_facility = syslog_mask = -1; syslog_opened = 0; return Qnil; }
static VALUE mSyslog_facility(VALUE self) { return syslog_opened ? INT2NUM(syslog_facility) : Qnil; }
static VALUE mSyslog_ident(VALUE self) { return syslog_opened ? rb_str_new2(syslog_ident) : Qnil; }
static VALUE mSyslog_inspect(VALUE self) { char buf[1024]; if (syslog_opened) { snprintf(buf, sizeof(buf), "<#%s: opened=true, ident=\"%s\", options=%d, facility=%d, mask=%d>", rb_class2name(self), syslog_ident, syslog_options, syslog_facility, syslog_mask); } else { snprintf(buf, sizeof(buf), "<#%s: opened=false>", rb_class2name(self)); } return rb_str_new2(buf); }
static VALUE mSyslog_log(int argc, VALUE *argv, VALUE self) { VALUE pri; if (argc < 2) { rb_raise(rb_eArgError, "wrong number of arguments (%d for 2+)", argc); } argc--; pri = *argv++; if (!FIXNUM_P(pri)) { rb_raise(rb_eTypeError, "type mismatch: %s given", rb_class2name(CLASS_OF(pri))); } syslog_write(FIX2INT(pri), argc, argv); return self; }
static VALUE mSyslog_get_mask(VALUE self) { return syslog_opened ? INT2NUM(syslog_mask) : Qnil; }
static VALUE mSyslog_set_mask(VALUE self, VALUE mask) { rb_secure(4); if (!syslog_opened) { rb_raise(rb_eRuntimeError, "must open syslog before setting log mask"); } setlogmask(syslog_mask = NUM2INT(mask)); return mask; }
static VALUE mSyslog_open(int argc, VALUE *argv, VALUE self) { VALUE ident, opt, fac; if (syslog_opened) { rb_raise(rb_eRuntimeError, "syslog already open"); } rb_scan_args(argc, argv, "03", &ident, &opt, &fac); if (NIL_P(ident)) { ident = rb_gv_get("$0"); } SafeStringValue(ident); syslog_ident = strdup(RSTRING_PTR(ident)); if (NIL_P(opt)) { syslog_options = LOG_PID | LOG_CONS; } else { syslog_options = NUM2INT(opt); } if (NIL_P(fac)) { syslog_facility = LOG_USER; } else { syslog_facility = NUM2INT(fac); } openlog(syslog_ident, syslog_options, syslog_facility); syslog_opened = 1; setlogmask(syslog_mask = setlogmask(0)); /* be like File.new.open {...} */ if (rb_block_given_p()) { rb_ensure(rb_yield, self, mSyslog_close, self); } return self; }
static VALUE mSyslog_reopen(int argc, VALUE *argv, VALUE self) { mSyslog_close(self); return mSyslog_open(argc, argv, self); }
static VALUE mSyslog_isopen(VALUE self) { return syslog_opened ? Qtrue : Qfalse; }
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.