[Openais] [PATCH corosync/trunk] add a log_printf function to coroipcs so we can pass log level
Fabio M. Di Nitto
fdinitto at redhat.com
Wed Oct 14 20:39:41 PDT 2009
On Thu, 2009-10-15 at 11:22 +1300, angus salkeld wrote:
> Hi
>
> Add apiv2->log_printf(<log level>, ...);
>
> Else you can't add anything but error logs int coroipcs.c.
>
> (Attached & inline)
>
> Note: I am not nuts about the #include <syslog.h>
> but if I include <logsys.h> the #define for log_printf() in
> that header messes with the log_printf in coroipcs.c
try this:
#define LOGSYS_UTILS_ONLY 1
#include <corosync/engine/logsys.h>
> -struct coroipcs_init_stats_state {
> +struct coroipcs_init_state_v2 {
> hdb_handle_t (*stats_create_connection) (const char* name,
> pid_t pid, int fd);
> void (*stats_destroy_connection) (hdb_handle_t handle);
> void (*stats_update_value) (hdb_handle_t handle,
> const char *name, const void *value, size_t value_len);
> void (*stats_increment_value) (hdb_handle_t handle, const char* name);
> + void (*log_printf) (unsigned int level, const char *format, ...)
> + __attribute__((format(printf, 2, 3)));
> };
>
Instead of making this generic log_printf available only for stats,
would be an idea to look into cleaning it up all over the place in a
similar way as totem, where there is only one log_printf that behaves as
the one coming from logsys?
#define log_printf(level, format, args...)
\
do {
\
instance->totemudp_log_printf (
\
LOGSYS_ENCODE_RECID(level,
\
instance->totemudp_subsys_id,
\
LOGSYS_RECID_LOG),
\
__FUNCTION__, __FILE__, __LINE__,
\
(const char *)format, ##args);
\
} while (0);
or something along those lines......
AFAICT ipc has 2/3 different ipc_log_foo, one for each level..
Fabio
More information about the Openais
mailing list