Ruby
3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
|
Go to the documentation of this file.
21 static VALUE mSyslogConstants;
23 static VALUE mSyslogOption;
25 static VALUE mSyslogFacility;
27 static VALUE mSyslogLevel;
29 static VALUE mSyslogMacros;
31 static const char *syslog_ident =
NULL;
32 static int syslog_options = -1, syslog_facility = -1, syslog_mask = -1;
33 static 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) \
343 static 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)
void rb_include_module(VALUE klass, VALUE module)
#define rb_define_syslog_option(c)
#define rb_define_singleton_method(klass, mid, func, arity)
Defines klass.mid.
VALUE rb_define_module_under(VALUE outer, const char *name)
int rb_block_given_p(void)
Determines if the current method is given a block.
VALUE rb_gv_get(const char *)
ID rb_intern(const char *)
VALUE rb_define_module(const char *name)
VALUE rb_sprintf(const char *,...)
#define UNLIMITED_ARGUMENTS
#define define_syslog_shortcut_method(pri, name)
void rb_raise(VALUE exc, const char *fmt,...)
VALUE rb_obj_class(VALUE)
#define rb_define_syslog_facility(c)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
void rb_extend_object(VALUE obj, VALUE module)
Extend the object with the module.
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
VALUE rb_f_sprintf(int, const VALUE *)
#define RSTRING_PTR(string)
char str[HTML_ESCAPE_MAX_LEN+1]
#define StringValueCStr(v)
#define rb_define_method(klass, mid, func, arity)
Defines klass#mid.
VALUE rb_ensure(VALUE(*b_proc)(VALUE), VALUE data1, VALUE(*e_proc)(VALUE), VALUE data2)
An equivalent to ensure clause.
#define rb_define_module_function(klass, mid, func, arity)
Defines klass#mid and makes it a module function.
#define rb_define_syslog_level(c, m)