[Openais] Patch print.c

Hans Feldt Hans.Feldt at ericsson.com
Tue Aug 29 03:30:45 PDT 2006


Fabien THOMAS wrote:
> The easy way for me is to have all LOG_LEVEL_DEBUG message printed  when 
> global debug flag is on.
> Is it what you did ?

No. When I work with AMF I have the following logging section in 
openais.conf:

logging {
	fileline: on
	to_stderr: yes
	to_file: no
	logfile: /tmp/openais.log
	debug: off
	timestamp: on
	logger {
		ident: AMF
		debug: on
		tags: enter|leave|trace1|trace2|trace3|trace4|trace6
	}
}

/Hans


> 
> Le 29 août 06 à 10:41, Hans Feldt a écrit :
> 
>>
>> 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