[Cluster-devel] cluster/cman/daemon ais.c barrier.c cmanccs.c ...
Steven Dake
sdake at redhat.com
Mon Sep 17 20:05:16 UTC 2007
Patrick,
I think the usage of this isnt quite right.
You should be suing DECLARE_LOGSYS_SUBSYS in your plugin C files to
declare the CMAN logging system. Also the use of the config API is a
bit tricky since the executive also uses this same API. It is designed
to be called by only one subsystem.
Regards
-steve
On Mon, 2007-09-17 at 08:03 +0000, pcaulfield at sourceware.org wrote:
> CVSROOT: /cvs/cluster
> Module name: cluster
> Changes by: pcaulfield at sourceware.org 2007-09-17 08:03:37
>
> Modified files:
> cman/daemon : ais.c barrier.c cmanccs.c commands.c daemon.c
> logging.c logging.h
>
> Log message:
> Use openais logsys functions.
>
> Patches:
> http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/ais.c.diff?cvsroot=cluster&r1=1.49&r2=1.50
> http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/barrier.c.diff?cvsroot=cluster&r1=1.11&r2=1.12
> http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/cmanccs.c.diff?cvsroot=cluster&r1=1.29&r2=1.30
> http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/commands.c.diff?cvsroot=cluster&r1=1.70&r2=1.71
> http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/daemon.c.diff?cvsroot=cluster&r1=1.36&r2=1.37
> http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/logging.c.diff?cvsroot=cluster&r1=1.14&r2=1.15
> http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/logging.h.diff?cvsroot=cluster&r1=1.7&r2=1.8
>
> --- cluster/cman/daemon/ais.c 2007/05/21 10:48:40 1.49
> +++ cluster/cman/daemon/ais.c 2007/09/17 08:03:36 1.50
> @@ -36,7 +36,7 @@
> #include <openais/service/config.h>
> #include <openais/lcr/lcr_comp.h>
> #include <openais/service/swab.h>
> -#include <openais/service/print.h>
> +#include <openais/service/logsys.h>
>
> #include "cnxman-socket.h"
> #include "commands.h"
> @@ -204,9 +204,7 @@
>
> /* Initialise early logging */
> if (getenv("CMAN_DEBUGLOG"))
> - {
> debug_mask = atoi(getenv("CMAN_DEBUGLOG"));
> - }
>
> if (getenv("CMAN_PIPE"))
> startup_pipe = atoi(getenv("CMAN_PIPE"));
> @@ -242,7 +240,7 @@
> {
> unsigned int object_handle;
>
> - /* We can only work if our config inerface was run first */
> + /* We can only work if our config interface was run first */
> if (!config_run)
> return 0;
>
> @@ -269,6 +267,8 @@
> close(startup_pipe);
> startup_pipe = 0;
>
> + cman_flush_debuglog();
> +
> /* Start totem */
> totempg_groups_initialize(&group_handle, cman_deliver_fn, cman_confchg_fn);
> totempg_groups_join(group_handle, cman_group, 1);
> --- cluster/cman/daemon/barrier.c 2007/06/26 09:09:13 1.11
> +++ cluster/cman/daemon/barrier.c 2007/09/17 08:03:36 1.12
> @@ -240,7 +240,7 @@
> /* See if it already exists */
> if ((barrier = find_barrier(name))) {
> if (nodes != barrier->expected_nodes) {
> - log_msg(LOG_ERR, "Barrier registration failed for '%s', expected nodes=%d, requested=%d\n",
> + log_printf(LOG_ERR, "Barrier registration failed for '%s', expected nodes=%d, requested=%d\n",
> name, barrier->expected_nodes, nodes);
> return -EINVAL;
> }
> --- cluster/cman/daemon/cmanccs.c 2007/08/03 07:35:06 1.29
> +++ cluster/cman/daemon/cmanccs.c 2007/09/17 08:03:36 1.30
> @@ -102,7 +102,7 @@
> /* Open the config file */
> ctree = ccs_force_connect(NULL, 1);
> if (ctree < 0) {
> - log_msg(LOG_ERR, "Error connecting to CCS");
> + log_printf(LOG_ERR, "Error connecting to CCS");
> write_cman_pipe("Cannot connect to CCS");
> return -1;
> }
> @@ -156,7 +156,7 @@
> char message[132];
>
> sprintf(message, "No node ID for %s, run 'ccs_tool addnodeids' to fix", nodename);
> - log_msg(LOG_ERR, message);
> + log_printf(LOG_ERR, message);
> write_cman_pipe(message);
> return -1;
> }
> @@ -190,7 +190,7 @@
> default a multicast address */
> ret = getaddrinfo(nodenames[0], NULL, &ahints, &ainfo);
> if (ret) {
> - log_msg(LOG_ERR, "Can't determine address family of nodename %s\n", nodenames[0]);
> + log_printf(LOG_ERR, "Can't determine address family of nodename %s\n", nodenames[0]);
> write_cman_pipe("Can't determine address family of nodename");
> return NULL;
> }
> @@ -402,12 +402,12 @@
> /* Connect to ccsd */
> if (getenv("CMAN_CLUSTER_NAME")) {
> cname = getenv("CMAN_CLUSTER_NAME");
> - log_msg(LOG_INFO, "Using override cluster name %s\n", cname);
> + log_printf(LOG_INFO, "Using override cluster name %s\n", cname);
> }
>
> cd = ccs_force_connect(cname, 1);
> if (cd < 0) {
> - log_msg(LOG_ERR, "Error connecting to CCS");
> + log_printf(LOG_ERR, "Error connecting to CCS");
> write_cman_pipe("Can't connect to CCSD");
> return -ENOTCONN;
> }
> @@ -415,14 +415,14 @@
> /* Cluster name */
> error = ccs_get(cd, CLUSTER_NAME_PATH, &str);
> if (error) {
> - log_msg(LOG_ERR, "cannot find cluster name in config file");
> + log_printf(LOG_ERR, "cannot find cluster name in config file");
> write_cman_pipe("Can't find cluster name in CCS");
> return -ENOENT;
> }
>
> if (cname) {
> if (strcmp(cname, str)) {
> - log_msg(LOG_ERR, "cluster names not equal %s %s", cname, str);
> + log_printf(LOG_ERR, "cluster names not equal %s %s", cname, str);
> write_cman_pipe("Cluster name in CCS does not match that passed to cman_tool");
> return -ENOENT;
> }
> @@ -445,7 +445,7 @@
>
> if (getenv("CMAN_NODENAME")) {
> strcpy(nodename, getenv("CMAN_NODENAME"));
> - log_msg(LOG_INFO, "Using override node name %s\n", nodename);
> + log_printf(LOG_INFO, "Using override node name %s\n", nodename);
>
> sprintf(path, NODE_NAME_PATH_BYNAME, nodename);
>
> @@ -454,7 +454,7 @@
> free(str);
> }
> else {
> - log_msg(LOG_ERR, "Overridden node name %s is not in CCS", nodename);
> + log_printf(LOG_ERR, "Overridden node name %s is not in CCS", nodename);
> write_cman_pipe("Overridden node name is not in CCS");
> return -ENOENT;
> }
> @@ -463,7 +463,7 @@
> struct utsname utsname;
> error = uname(&utsname);
> if (error) {
> - log_msg(LOG_ERR, "cannot get node name, uname failed");
> + log_printf(LOG_ERR, "cannot get node name, uname failed");
> write_cman_pipe("Can't determine local node name");
> return -ENOENT;
> }
> @@ -474,7 +474,7 @@
> /* Find our nodename in cluster.conf */
> error = verify_nodename(cd, nodename);
> if (error) {
> - log_msg(LOG_ERR, "local node name \"%s\" not found in cluster.conf",
> + log_printf(LOG_ERR, "local node name \"%s\" not found in cluster.conf",
> nodename);
> write_cman_pipe("Can't find local node name in cluster.conf");
> return -ENOENT;
> @@ -485,11 +485,11 @@
> if (getenv("CMAN_EXPECTEDVOTES")) {
> expected_votes = atoi(getenv("CMAN_EXPECTEDVOTES"));
> if (expected_votes < 1) {
> - log_msg(LOG_ERR, "CMAN_EXPECTEDVOTES environment variable is invalid, ignoring");
> + log_printf(LOG_ERR, "CMAN_EXPECTEDVOTES environment variable is invalid, ignoring");
> expected_votes = 0;
> }
> else {
> - log_msg(LOG_INFO, "Using override expected votes %d\n", expected_votes);
> + log_printf(LOG_INFO, "Using override expected votes %d\n", expected_votes);
> }
> }
>
> @@ -515,7 +515,7 @@
> vote_sum++;
> else {
> if (atoi(str) < 0) {
> - log_msg(LOG_ERR, "negative votes not allowed");
> + log_printf(LOG_ERR, "negative votes not allowed");
> write_cman_pipe("Found negative votes for this node in CCS");
> return -EINVAL;
> }
> @@ -537,7 +537,7 @@
> /* optional port */
> if (getenv("CMAN_IP_PORT")) {
> port = atoi(getenv("CMAN_IP_PORT"));
> - log_msg(LOG_INFO, "Using override IP port %d\n", port);
> + log_printf(LOG_INFO, "Using override IP port %d\n", port);
> }
>
> if (!port) {
> @@ -565,7 +565,7 @@
> /* find our own number of votes */
> if (getenv("CMAN_VOTES")) {
> votes = atoi(getenv("CMAN_VOTES"));
> - log_msg(LOG_INFO, "Using override votes %d\n", votes);
> + log_printf(LOG_INFO, "Using override votes %d\n", votes);
> }
>
> if (!votes) {
> @@ -576,7 +576,7 @@
> if (!error) {
> int votestmp = atoi(str);
> if (votestmp < 0 || votestmp > 255) {
> - log_msg(LOG_ERR, "invalid votes value %d", votes);
> + log_printf(LOG_ERR, "invalid votes value %d", votes);
> write_cman_pipe("Found invalid votes for node in CCS");
> return -EINVAL;
> }
> @@ -592,7 +592,7 @@
> /* nodeid */
> if (getenv("CMAN_NODEID")) {
> nodeid = atoi(getenv("CMAN_NODEID"));
> - log_msg(LOG_INFO, "Using override nodeid %d\n", nodeid);
> + log_printf(LOG_INFO, "Using override nodeid %d\n", nodeid);
> }
>
> if (!nodeid) {
> @@ -607,14 +607,14 @@
> }
>
> if (!nodeid) {
> - log_msg(LOG_ERR, "No nodeid specified in cluster.conf");
> + log_printf(LOG_ERR, "No nodeid specified in cluster.conf");
> write_cman_pipe("CCS does not have a nodeid for this node, run 'ccs_tool addnodeids' to fix");
> return -EINVAL;
> }
>
> if (getenv("CMAN_MCAST_ADDR")) {
> mcast_name = getenv("CMAN_MCAST_ADDR");
> - log_msg(LOG_INFO, "Using override multicast address %s\n", mcast_name);
> + log_printf(LOG_INFO, "Using override multicast address %s\n", mcast_name);
> }
>
> /* Optional multicast name */
> @@ -627,7 +627,7 @@
>
> if (!mcast_name) {
> mcast_name = default_mcast(cluster_id);
> - log_msg(LOG_INFO, "Using default multicast address of %s\n", mcast_name);
> + log_printf(LOG_INFO, "Using default multicast address of %s\n", mcast_name);
> }
>
> mcast[0] = mcast_name;
> @@ -678,7 +678,7 @@
> free(str);
> if (two_node) {
> if (node_count != 2 || vote_sum != 2) {
> - log_msg(LOG_ERR, "the two-node option requires exactly two "
> + log_printf(LOG_ERR, "the two-node option requires exactly two "
> "nodes with one vote each and expected "
> "votes of 1 (node_count=%d vote_sum=%d)",
> node_count, vote_sum);
> @@ -687,7 +687,7 @@
> }
>
> if (votes != 1) {
> - log_msg(LOG_ERR, "the two-node option requires exactly two "
> + log_printf(LOG_ERR, "the two-node option requires exactly two "
> "nodes with one vote each and expected "
> "votes of 1 (votes=%d)", votes);
> write_cman_pipe("two_node set but votes not set to 1");
> @@ -710,7 +710,7 @@
>
> error = get_ccs_join_info();
> if (error) {
> - log_msg(LOG_ERR, "Error reading CCS info, cannot start");
> + log_printf(LOG_ERR, "Error reading CCS info, cannot start");
> return error;
> }
>
> --- cluster/cman/daemon/commands.c 2007/09/07 12:17:45 1.70
> +++ cluster/cman/daemon/commands.c 2007/09/17 08:03:36 1.71
> @@ -34,7 +34,7 @@
> #include <openais/totem/totemip.h>
> #include <openais/totem/totempg.h>
> #include <openais/service/swab.h>
> -#include <openais/service/print.h>
> +#include <openais/service/logsys.h>
> #include <openais/service/timer.h>
> #include <openais/totem/aispoll.h>
> #include "list.h"
> @@ -159,9 +159,9 @@
> }
>
> if (cluster_is_quorate && !quorate)
> - log_msg(LOG_INFO, "quorum lost, blocking activity\n");
> + log_printf(LOG_INFO, "quorum lost, blocking activity\n");
> if (!cluster_is_quorate && quorate)
> - log_msg(LOG_INFO, "quorum regained, resuming activity\n");
> + log_printf(LOG_INFO, "quorum regained, resuming activity\n");
>
> /* If we are newly quorate, then kill any AISONLY nodes */
> if (!cluster_is_quorate && quorate) {
> @@ -404,7 +404,7 @@
> ais_running = 1;
>
> if (read_ccs_nodes(&config_version, 1)) {
> - log_msg(LOG_ERR, "Can't initialise list of nodes from CCS\n");
> + log_printf(LOG_ERR, "Can't initialise list of nodes from CCS\n");
> return -EINVAL;
> }
>
> @@ -997,7 +997,7 @@
> /* Keep this list valid so it doesn't confuse other code */
> list_init(&quorum_device->addr_list);
>
> - log_msg(LOG_INFO, "quorum device registered\n");
> + log_printf(LOG_INFO, "quorum device registered\n");
> return 0;
> }
>
> @@ -1014,7 +1014,7 @@
>
> quorum_device = NULL;
>
> - log_msg(LOG_INFO, "quorum device unregistered\n");
> + log_printf(LOG_INFO, "quorum device unregistered\n");
> return 0;
> }
>
> @@ -1022,17 +1022,17 @@
> {
> int ccs_err;
>
> - log_msg(LOG_DEBUG, "Polling ccsd for updated information\n");
> + log_printf(LOG_DEBUG, "Polling ccsd for updated information\n");
> ccs_err = read_ccs_nodes(&config_version, 0);
> if (ccs_err || config_version < wanted_config_version) {
> - log_msg(LOG_ERR, "Can't read CCS to get updated config version %d. Activity suspended on this node\n",
> - wanted_config_version);
> + log_printf(LOG_ERR, "Can't read CCS to get updated config version %d. Activity suspended on this node\n",
> + wanted_config_version);
>
> openais_timer_add_duration((unsigned long long)ccsd_poll_interval*1000000, NULL,
> ccsd_timer_fn, &ccsd_timer);
> }
> else {
> - log_msg(LOG_ERR, "Now got CCS information version %d, continuing\n", config_version);
> + log_printf(LOG_ERR, "Now got CCS information version %d, continuing\n", config_version);
> config_error = 0;
> recalculate_quorum(0, 0);
> }
> @@ -1048,7 +1048,7 @@
> gettimeofday(&now, NULL);
> if (quorum_device->last_hello.tv_sec + quorumdev_poll/1000 < now.tv_sec) {
> quorum_device->state = NODESTATE_DEAD;
> - log_msg(LOG_INFO, "lost contact with quorum device\n");
> + log_printf(LOG_INFO, "lost contact with quorum device\n");
> recalculate_quorum(0, 0);
> }
> else {
> @@ -1478,20 +1478,20 @@
> static int valid_transition_msg(int nodeid, struct cl_transmsg *msg)
> {
> if (strcmp(msg->clustername, cluster_name) != 0) {
> - log_msg(LOG_ERR, "Node %d conflict, remote cluster name='%s', local='%s'\n",
> + log_printf(LOG_ERR, "Node %d conflict, remote cluster name='%s', local='%s'\n",
> nodeid, msg->clustername, cluster_name);
> return -1;
> }
>
> if (msg->cluster_id != cluster_id) {
> - log_msg(LOG_ERR, "Node %d conflict, remote cluster id=%d, local=%d\n",
> + log_printf(LOG_ERR, "Node %d conflict, remote cluster id=%d, local=%d\n",
> nodeid, msg->cluster_id, cluster_id);
> return -1;
> }
>
> if (msg->major_version != CNXMAN_MAJOR_VERSION) {
>
> - log_msg(LOG_ERR, "Node %d conflict, remote version id=%d, local=%d\n",
> + log_printf(LOG_ERR, "Node %d conflict, remote version id=%d, local=%d\n",
> nodeid, msg->major_version, CNXMAN_MAJOR_VERSION);
> return -1;
> }
> @@ -1503,7 +1503,7 @@
> ccs_err = read_ccs_nodes(&config_version, 0);
> if (ccs_err || config_version < msg->config_version) {
> config_error = 1;
> - log_msg(LOG_ERR, "Can't read CCS to get updated config version %d. Activity suspended on this node\n",
> + log_printf(LOG_ERR, "Can't read CCS to get updated config version %d. Activity suspended on this node\n",
> msg->config_version);
>
> wanted_config_version = msg->config_version;
> @@ -1518,7 +1518,7 @@
>
>
> if (msg->config_version != config_version) {
> - log_msg(LOG_ERR, "Node %d conflict, remote config version id=%d, local=%d\n",
> + log_printf(LOG_ERR, "Node %d conflict, remote config version id=%d, local=%d\n",
> nodeid, msg->config_version, config_version);
> return -1;
> }
> @@ -1660,7 +1660,7 @@
>
> case RECONFIG_PARAM_CONFIG_VERSION:
> if (read_ccs_nodes(&config_version, 0)) {
> - log_msg(LOG_ERR, "Can't read CCS to get updated config version %d. Activity suspended on this node\n",
> + log_printf(LOG_ERR, "Can't read CCS to get updated config version %d. Activity suspended on this node\n",
> msg->value);
>
> config_error = 1;
> @@ -1839,7 +1839,7 @@
>
> case CLUSTER_MSG_PORTSTATUS:
> if (nodeid != us->node_id) {
> - P_MEMB("got PORTRESULT from %d, low bytes = %x %x\n", data[1], data[2]);
> + P_MEMB("got PORTRESULT from %d, low bytes = %x %x\n", nodeid, data[1], data[2]);
> if (node)
> memcpy(node->port_bits, data+1, PORT_BITS_SIZE);
> }
> @@ -1854,7 +1854,7 @@
> killmsg = (struct cl_killmsg *)data;
> P_MEMB("got KILL for node %d\n", killmsg->nodeid);
> if (killmsg->nodeid == wanted_nodeid) {
> - log_msg(LOG_INFO, "cman killed by node %d because %s\n", nodeid,
> + log_printf(LOG_INFO, "cman killed by node %d because %s\n", nodeid,
> killmsg_reason(killmsg->reason));
> exit(1);
> }
> @@ -1896,7 +1896,7 @@
> break;
>
> default:
> - log_msg(LOG_WARNING, "Unknown protocol message %d received\n", msg->cmd);
> + log_printf(LOG_WARNING, "Unknown protocol message %d received\n", msg->cmd);
> break;
>
> }
> @@ -1926,11 +1926,11 @@
> if (totemip_parse(&ipaddr, nodename, 0))
> {
> if (!nodeid) {
> - log_msg(LOG_ERR, "Error, can't find IP address and no nodeid for node %s - ignoring it\n", nodename);
> + log_printf(LOG_ERR, "Error, can't find IP address and no nodeid for node %s - ignoring it\n", nodename);
> return;
> }
> else {
> - log_msg(LOG_WARNING, "Warning, can't resolve IP address for node %s\n", nodename);
> + log_printf(LOG_WARNING, "Warning, can't resolve IP address for node %s\n", nodename);
> memset(&ipaddr, 0, sizeof(ipaddr));
> }
> }
> @@ -1943,7 +1943,7 @@
> {
> struct cluster_node *node;
>
> - P_MEMB("add_ais_node ID=%d, incarnation = %d\n",nodeid, incarnation);
> + P_MEMB("add_ais_node ID=%d, incarnation = %lld\n",nodeid, incarnation);
>
> node = find_node_by_nodeid(nodeid);
> if (!node && total_members == 1) {
> @@ -1956,11 +1956,11 @@
> char tempname[256];
> node = malloc(sizeof(struct cluster_node));
> if (!node) {
> - log_msg(LOG_ERR, "error allocating node struct for id %d, but CCS doesn't know about it anyway\n",
> + log_printf(LOG_ERR, "error allocating node struct for id %d, but CCS doesn't know about it anyway\n",
> nodeid);
> return;
> }
> - log_msg(LOG_ERR, "Got node from AIS id %d with no CCS entry\n", nodeid);
> + log_printf(LOG_ERR, "Got node from AIS id %d with no CCS entry\n", nodeid);
>
> memset(node, 0, sizeof(struct cluster_node));
> node_add_ordered(node);
> --- cluster/cman/daemon/daemon.c 2007/08/22 08:58:37 1.36
> +++ cluster/cman/daemon/daemon.c 2007/09/17 08:03:36 1.37
> @@ -337,7 +337,7 @@
> unlink(name);
> local_socket = socket(PF_UNIX, SOCK_STREAM, 0);
> if (local_socket < 0) {
> - log_msg(LOG_ERR, "Can't create local socket %s: %s\n", name, strerror(errno));
> + log_printf(LOG_ERR, "Can't create local socket %s: %s\n", name, strerror(errno));
> write_cman_pipe("Can't create local cman socket");
> return -1;
> }
> @@ -349,13 +349,13 @@
> memcpy(sockaddr.sun_path, name, name_len);
> sockaddr.sun_family = AF_UNIX;
> if (bind(local_socket, (struct sockaddr *) &sockaddr, sizeof(sockaddr))) {
> - log_msg(LOG_ERR, "can't bind local socket to %s: %s\n", name, strerror(errno));
> + log_printf(LOG_ERR, "can't bind local socket to %s: %s\n", name, strerror(errno));
> write_cman_pipe("Can't bind to local cman socket");
> close(local_socket);
> return -1;
> }
> if (listen(local_socket, 1) != 0) {
> - log_msg(LOG_ERR, "listen on %s failed: %s\n", name, strerror(errno));
> + log_printf(LOG_ERR, "listen on %s failed: %s\n", name, strerror(errno));
> write_cman_pipe("listen failed on local cman socket");
> close(local_socket);
> return -1;
> @@ -366,7 +366,7 @@
>
> con = malloc(sizeof(struct connection));
> if (!con) {
> - log_msg(LOG_ERR, "Can't allocate space for local connection: %s\n", strerror(errno));
> + log_printf(LOG_ERR, "Can't allocate space for local connection: %s\n", strerror(errno));
> write_cman_pipe("malloc failed for connection info");
> close(local_socket);
> return -1;
> @@ -481,8 +481,8 @@
> ais_poll_handle = aisexec_poll_handle;
> barrier_init();
>
> - log_msg(LOG_INFO, "CMAN %s (built %s %s) started\n",
> - RELEASE_VERSION, __DATE__, __TIME__);
> + log_printf(LOG_INFO, "CMAN %s (built %s %s) started\n",
> + RELEASE_VERSION, __DATE__, __TIME__);
>
> fd = open_local_sock(CLIENT_SOCKNAME, sizeof(CLIENT_SOCKNAME), 0660, ais_poll_handle, CON_CLIENT);
> if (fd < 0)
> --- cluster/cman/daemon/logging.c 2007/08/28 13:14:10 1.14
> +++ cluster/cman/daemon/logging.c 2007/09/17 08:03:36 1.15
> @@ -21,32 +21,17 @@
> #include <sys/socket.h>
> #include <netinet/in.h>
>
> -/* openais header */
> -#include <openais/service/print.h>
> -
> +#include <openais/service/logsys.h>
> #include "logging.h"
>
> -/* All logging comes through here so it can be stamped [CMAN] */
> -
> -static int use_stderr = 0;
> +/* Make this global so that all of cman can use the same subsys name */
> +unsigned int logsys_subsys_id;
> int subsys_mask = 0;
>
> -void log_msg(int priority, char *fmt, ...)
> -{
> - va_list va;
> - char log_buf[1024];
> -
> - va_start(va, fmt);
> - vsprintf(log_buf, fmt, va);
> - va_end(va);
> - log_printf(priority, log_buf);
> -}
> -
> void init_debug(int subsystems)
> {
> - log_init("CMAN");
> -
> - use_stderr = (subsystems != 0);
> + logsys_subsys_id = _logsys_subsys_create("CMAN", (subsystems?LOG_LEVEL_DEBUG:LOG_LEVEL_WARNING) );
> + logsys_config_mode_set(LOG_MODE_BUFFER_BEFORE_CONFIG | ((subsystems)?LOG_MODE_OUTPUT_STDERR:0));
> subsys_mask = subsystems;
> }
>
> @@ -55,43 +40,8 @@
> subsys_mask = subsystems;
> }
>
> -void log_debug(int subsys, int stamp, const char *fmt, ...)
> +
> +void cman_flush_debuglog()
> {
> - va_list va;
> - char newfmt[strlen(fmt)+10];
> - char log_buf[1024];
> -
> - if (!(subsys_mask & subsys))
> - return;
> -
> - if (stamp)
> - {
> - switch(subsys)
> - {
> - case CMAN_DEBUG_MEMB:
> - strcpy(newfmt, "memb: ");
> - break;
> - case CMAN_DEBUG_DAEMON:
> - strcpy(newfmt, "daemon: ");
> - break;
> - case CMAN_DEBUG_BARRIER:
> - strcpy(newfmt, "barrier: ");
> - break;
> - case CMAN_DEBUG_AIS:
> - strcpy(newfmt, "ais: ");
> - break;
> - default:
> - break;
> - }
> - }
> - else
> - {
> - newfmt[0] = '\0';
> - }
> - strcat(newfmt, fmt);
> -
> - va_start(va, fmt);
> - vsprintf(log_buf, newfmt, va);
> - log_printf(LOG_LEVEL_DEBUG, log_buf);
> - va_end(va);
> + logsys_config_mode_set(LOG_MODE_FLUSH_AFTER_CONFIG | ((subsys_mask)?LOG_MODE_OUTPUT_STDERR:0));
> }
> --- cluster/cman/daemon/logging.h 2007/08/28 13:14:10 1.7
> +++ cluster/cman/daemon/logging.h 2007/09/17 08:03:36 1.8
> @@ -9,9 +9,9 @@
> **
> *******************************************************************************
> ******************************************************************************/
> -
> -extern void log_msg(int priority, char *fmt, ...);
> +#include <openais/service/logsys.h>
> extern void init_debug(int subsystems);
> +extern void cman_flush_debuglog(void);
> extern void set_debuglog(int subsystems);
>
> /* Debug macros */
> @@ -21,9 +21,10 @@
> #define CMAN_DEBUG_DAEMON 8
> #define CMAN_DEBUG_AIS 16
>
> -extern void log_debug(int subsys, int stamp, const char *fmt, ...);
> +extern unsigned int logsys_subsys_id;
> +extern int subsys_mask;
>
> -#define P_BARRIER(fmt, args...) log_debug(CMAN_DEBUG_BARRIER, 1, fmt, ## args)
> -#define P_MEMB(fmt, args...) log_debug(CMAN_DEBUG_MEMB, 1, fmt, ## args)
> -#define P_DAEMON(fmt, args...) log_debug(CMAN_DEBUG_DAEMON, 1, fmt, ## args)
> -#define P_AIS(fmt, args...) log_debug(CMAN_DEBUG_AIS, 1, fmt, ## args)
> +#define P_BARRIER(fmt, args...) if (subsys_mask & CMAN_DEBUG_BARRIER) log_printf(logsys_mkpri(LOG_LEVEL_DEBUG, logsys_subsys_id), "barrier: " fmt, ## args)
> +#define P_MEMB(fmt, args...) if (subsys_mask & CMAN_DEBUG_MEMB) log_printf(LOG_LEVEL_DEBUG , "memb: " fmt, ## args)
> +#define P_DAEMON(fmt, args...) if (subsys_mask & CMAN_DEBUG_DAEMON) log_printf(LOG_LEVEL_DEBUG , "daemon: " fmt, ## args)
> +#define P_AIS(fmt, args...) if (subsys_mask & CMAN_DEBUG_AIS) log_printf(LOG_LEVEL_DEBUG, "ais " fmt, ## args)
>
More information about the Cluster-devel
mailing list