[Openais] Patch print.c
Hans Feldt
Hans.Feldt at ericsson.com
Thu Aug 31 04:16:27 PDT 2006
Can someone please give a commit go ahead on this one?
The buffered printouts are very annoying!
/Hans
Hans Feldt wrote:
>
> The patch does two things:
> - enable the global debug flag again, individual logger directives might
> then be used to disable a certain logger source.
> - when DEBUG compiled it does not use the new printer threads (so that
> printouts are not buffered at an abnormal exit)
>
> Comments?
>
> Regards,
> Hans
>
> Hans Feldt wrote:
>
>> Yes the main debug directive seems to be broken. I will look into
>> that. But you don't want that. Write a logger directive instead to get
>> logs for the service you want instead.
>>
>> /Hans
>>
>>
>> Fabien THOMAS wrote:
>>
>>>> No. Just configure in openais.conf. See man page for the file, it
>>>> should explain what you need.
>>>>
>>>
>>> in the man page i've found two things the main debug directive that
>>> is set to off by default in the sample config file
>>> and the logger directive.
>>>
>>> On my version setting the main debug to "on" does not display
>>> message with LOG_LEVEL_DEBUG what is the correct way to display
>>> this type of message ?
>>>
>>> For me there is something wrong: me, the doc, the code :)
>>>
>>> Fabien
>>>
>>>
>>>
>>>
>>
>>
>> _______________________________________________
>> Openais mailing list
>> Openais at lists.osdl.org
>> https://lists.osdl.org/mailman/listinfo/openais
>>
>
>
> ------------------------------------------------------------------------
>
> Index: exec/print.c
> ===================================================================
> --- exec/print.c (revision 1233)
> +++ exec/print.c (working copy)
> @@ -55,6 +55,7 @@
> #include <syslog.h>
> #include <stdlib.h>
> #include <pthread.h>
> +#include <signal.h>
>
> #include "print.h"
> #include "totemip.h"
> @@ -105,11 +106,7 @@
>
> for (i = 0; i < MAX_LOGGERS; i++) {
> if (strcmp (loggers[i].ident, ident) == 0) {
> - loggers[i].tags |= tags;
> - if (level > loggers[i].level) {
> - loggers[i].level = level;
> - }
> - break;
> + goto done;
> }
> }
>
> @@ -125,8 +122,8 @@
> }
> }
>
> - assert(i < MAX_LOGGERS);
> -
> +done:
> + assert (i < MAX_LOGGERS);
> return i;
> }
>
> @@ -181,7 +178,6 @@
> int i = 0;
> int len;
> struct log_data log_data;
> - unsigned int res = 0;
>
> assert (id < MAX_LOGGERS);
>
> @@ -238,15 +234,18 @@
> if (log_data.log_string == NULL) {
> goto drop_log_msg;
> }
> -
> +
> +#ifndef DEBUG
> if (log_setup_called) {
> - res = worker_thread_group_work_add (&log_thread_group, &log_data);
> + int res = worker_thread_group_work_add (&log_thread_group, &log_data);
> if (res == 0) {
> dropped_log_entries = 0;
> } else {
> dropped_log_entries += 1;
> }
> - } else {
> + } else
> +#endif
> + {
> log_printf_worker_fn (NULL, &log_data);
> }
>
> @@ -262,21 +261,36 @@
> {
> assert (ident != NULL);
>
> - /*
> - ** do different things before and after log_setup() has been called
> - */
> - if (log_setup_called) {
> + if (logmode & LOG_MODE_DEBUG) {
> + return logger_init (ident, TAG_LOG, LOG_LEVEL_DEBUG, 0);
> + } else {
> return logger_init (ident, TAG_LOG, LOG_LEVEL_INFO, 0);
> - } else {
> - return logger_init (ident, ~0, LOG_LEVEL_DEBUG, 0);
> }
> }
>
> +#ifdef PRINT_DEBUG
> +static void sigusr2_handler (int num)
> +{
> + int i;
> +
> + for (i = 0; i < MAX_LOGGERS; i++) {
> + if (strlen (loggers[i].ident) > 0) {
> + printf("ident: %6s, tags: %08x, level: %d\n",
> + loggers[i].ident, loggers[i].tags, loggers[i].level);
> + }
> + }
> +}
> +#endif
> +
> int log_setup (char **error_string, struct main_config *config)
> {
> int i;
> static char error_string_response[512];
>
> +#ifdef PRINT_DEBUG
> + signal (SIGUSR2, sigusr2_handler);
> +#endif
> +
> if (config->logmode & LOG_MODE_FILE) {
> log_file_fp = fopen (config->logfile, "a+");
> if (log_file_fp == 0) {
> @@ -298,14 +312,14 @@
> }
>
> /*
> - ** reinit all loggers that has initialised before log_setup() was called.
> + ** reinit level for all loggers that has initialised
> + ** before log_setup() was called.
> */
> for (i = 0; i < MAX_LOGGERS; i++) {
> - loggers[i].tags = TAG_LOG;
> - if (config->logmode & LOG_MODE_DEBUG) {
> - loggers[i].level = LOG_LEVEL_DEBUG;
> - } else {
> - loggers[i].level = LOG_LEVEL_INFO;
> + if (strlen (loggers[i].ident) > 0) {
> + if (config->logmode & LOG_MODE_DEBUG) {
> + loggers[i].level = LOG_LEVEL_DEBUG;
> + }
> }
> }
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Openais mailing list
> Openais at lists.osdl.org
> https://lists.osdl.org/mailman/listinfo/openais
More information about the Openais
mailing list