On Fri, 11 Jul 2008, Christine Caulfield wrote:

Fabio M. Di Nitto wrote:

Hi Steven,

as discussed in a previous thread logsys_config_subsys_set does not allow to set a lower priority (for example switching from LOG_LEVEL_DEBUG to LOG_LEVEL_INFO).

This behaviour can be problematic if we ask people to switch debugging on and then they can't turn it off.

The patch in attachment allows logsys to roll back to whatever priority the user wants.

Please apply


The problem with that patch is that it's the opposite of the one I posted and breaks (or rather leaves broken) the initialisation code.

If a logging priority is set in the configuration file, then that is set into logsys during config processing. When the lcrso modules are subsequently loaded they will reset the logging level back to their hard-coded default. So the config options are useless.

Chrissie


The patch in attachment fixes the problem at the root by not forcing priority re-init if the subsystem is already configured.

Please apply

Fabio

--
I'm going to make him an offer he can't refuse.
Index: exec/logsys.c
===================================================================
--- exec/logsys.c       (revision 1575)
+++ exec/logsys.c       (working copy)
@@ -185,9 +185,6 @@
                        logsys_loggers[i].tags = tags;
                        logsys_loggers[i].priority = priority;
 
-                       if (priority > logsys_loggers[i].priority) {
-                               logsys_loggers[i].priority = priority;
-                       }
                        break;
                }
        }
@@ -228,7 +225,7 @@
                        *tags = logsys_loggers[i].tags;
                        *priority = logsys_loggers[i].priority;
                        pthread_mutex_unlock (&logsys_config_mutex);
-                       return (0);
+                       return i;
                }
        }
 
@@ -481,10 +478,6 @@
 
        logsys_loggers[id].priority = priority;
 
-       if (priority > logsys_loggers[id].priority) {
-               logsys_loggers[id].priority = priority;
-       }
-
        pthread_mutex_unlock (&logsys_new_log_mutex);
 }
 
Index: exec/logsys.h
===================================================================
--- exec/logsys.h       (revision 1575)
+++ exec/logsys.h       (working copy)
@@ -180,16 +180,29 @@
 #define LOGSYS_DECLARE_NOSUBSYS(priority)                              \
 __attribute__ ((constructor)) static void logsys_nosubsys_init (void)  \
 {                                                                      \
-       _logsys_nosubsys_set();                                         \
+       unsigned int pri, tags;                                         \
+                                                                       \
        logsys_subsys_id =                                              \
-               _logsys_subsys_create ("MAIN", (priority));             \
+               logsys_config_subsys_get("MAIN", &tags, &pri);          \
+                                                                       \
+       if (logsys_subsys_id == -1) {                                   \
+               _logsys_nosubsys_set();                                 \
+               logsys_subsys_id =                                      \
+                       _logsys_subsys_create ("MAIN", (priority));     \
+       }                                                               \
 }
 
 #define LOGSYS_DECLARE_SUBSYS(subsys,priority)                         \
 __attribute__ ((constructor)) static void logsys_subsys_init (void)    \
 {                                                                      \
+       unsigned int pri, tags;                                         \
+                                                                       \
        logsys_subsys_id =                                              \
-               _logsys_subsys_create ((subsys), (priority));           \
+               logsys_config_subsys_get((subsys), &tags, &pri);        \
+                                                                       \
+       if (logsys_subsys_id == -1)                                     \
+               logsys_subsys_id =                                      \
+                       _logsys_subsys_create ((subsys), (priority));   \
 }
 
 #define log_printf(lvl, format, args...) do {                          \
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to