[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