Browse Source

debugger: new parameter log_level_name

- allow overwriting default log level name for cfgtrace messages
Daniel-Constantin Mierla 11 years ago
parent
commit
3e7d4b34ca

+ 79 - 64
modules/debugger/README

@@ -28,16 +28,17 @@ Daniel-Constantin Mierla
               3.1. cfgtrace (int)
               3.1. cfgtrace (int)
               3.2. breakpoint (int)
               3.2. breakpoint (int)
               3.3. log_level (int)
               3.3. log_level (int)
-              3.4. log_facility (str)
-              3.5. log_prefix (str)
-              3.6. step_usleep (int)
-              3.7. step_loops (int)
-              3.8. mod_hash_size (int)
-              3.9. mod_level_mode (int)
-              3.10. mod_level (str)
-              3.11. log_assign (int)
-              3.12. cfgpkgcheck (int)
-              3.13. reset_msgid (int)
+              3.4. log_level_name (str)
+              3.5. log_facility (str)
+              3.6. log_prefix (str)
+              3.7. step_usleep (int)
+              3.8. step_loops (int)
+              3.9. mod_hash_size (int)
+              3.10. mod_level_mode (int)
+              3.11. mod_level (str)
+              3.12. log_assign (int)
+              3.13. cfgpkgcheck (int)
+              3.14. reset_msgid (int)
 
 
         4. Functions
         4. Functions
 
 
@@ -59,18 +60,19 @@ Daniel-Constantin Mierla
    1.1. Set cfgtrace parameter
    1.1. Set cfgtrace parameter
    1.2. Set breakpoint parameter
    1.2. Set breakpoint parameter
    1.3. Set log_level parameter
    1.3. Set log_level parameter
-   1.4. Set log_facility parameter
-   1.5. Set log_prefix parameter
-   1.6. Set step_usleep parameter
-   1.7. Set step_loops parameter
-   1.8. Set mod_hash_size parameter
-   1.9. Set mod_level_mode parameter
-   1.10. Set mod_level parameter
-   1.11. Set log_assign parameter
-   1.12. Set cfgpkgcheck parameter
-   1.13. Set reset_msgid parameter
-   1.14. dbg_breakpoint usage
-   1.15. dbg_pv_dump usage
+   1.4. Set log_level_name parameter
+   1.5. Set log_facility parameter
+   1.6. Set log_prefix parameter
+   1.7. Set step_usleep parameter
+   1.8. Set step_loops parameter
+   1.9. Set mod_hash_size parameter
+   1.10. Set mod_level_mode parameter
+   1.11. Set mod_level parameter
+   1.12. Set log_assign parameter
+   1.13. Set cfgpkgcheck parameter
+   1.14. Set reset_msgid parameter
+   1.15. dbg_breakpoint usage
+   1.16. dbg_pv_dump usage
 
 
 Chapter 1. Admin Guide
 Chapter 1. Admin Guide
 
 
@@ -87,16 +89,17 @@ Chapter 1. Admin Guide
         3.1. cfgtrace (int)
         3.1. cfgtrace (int)
         3.2. breakpoint (int)
         3.2. breakpoint (int)
         3.3. log_level (int)
         3.3. log_level (int)
-        3.4. log_facility (str)
-        3.5. log_prefix (str)
-        3.6. step_usleep (int)
-        3.7. step_loops (int)
-        3.8. mod_hash_size (int)
-        3.9. mod_level_mode (int)
-        3.10. mod_level (str)
-        3.11. log_assign (int)
-        3.12. cfgpkgcheck (int)
-        3.13. reset_msgid (int)
+        3.4. log_level_name (str)
+        3.5. log_facility (str)
+        3.6. log_prefix (str)
+        3.7. step_usleep (int)
+        3.8. step_loops (int)
+        3.9. mod_hash_size (int)
+        3.10. mod_level_mode (int)
+        3.11. mod_level (str)
+        3.12. log_assign (int)
+        3.13. cfgpkgcheck (int)
+        3.14. reset_msgid (int)
 
 
    4. Functions
    4. Functions
 
 
@@ -157,16 +160,17 @@ Chapter 1. Admin Guide
    3.1. cfgtrace (int)
    3.1. cfgtrace (int)
    3.2. breakpoint (int)
    3.2. breakpoint (int)
    3.3. log_level (int)
    3.3. log_level (int)
-   3.4. log_facility (str)
-   3.5. log_prefix (str)
-   3.6. step_usleep (int)
-   3.7. step_loops (int)
-   3.8. mod_hash_size (int)
-   3.9. mod_level_mode (int)
-   3.10. mod_level (str)
-   3.11. log_assign (int)
-   3.12. cfgpkgcheck (int)
-   3.13. reset_msgid (int)
+   3.4. log_level_name (str)
+   3.5. log_facility (str)
+   3.6. log_prefix (str)
+   3.7. step_usleep (int)
+   3.8. step_loops (int)
+   3.9. mod_hash_size (int)
+   3.10. mod_level_mode (int)
+   3.11. mod_level (str)
+   3.12. log_assign (int)
+   3.13. cfgpkgcheck (int)
+   3.14. reset_msgid (int)
 
 
 3.1. cfgtrace (int)
 3.1. cfgtrace (int)
 
 
@@ -204,7 +208,18 @@ modparam("debugger", "breakpoint", 1)
 modparam("debugger", "log_level", 1)
 modparam("debugger", "log_level", 1)
 ...
 ...
 
 
-3.4. log_facility (str)
+3.4. log_level_name (str)
+
+   What log level name is to be used to print cfg trace messages.
+
+   Default value is "NULL" (use default log names).
+
+   Example 1.4. Set log_level_name parameter
+...
+modparam("debugger", "log_level_name", "exec")
+...
+
+3.5. log_facility (str)
 
 
    Which log facility is to be used to print module-specific messages. By
    Which log facility is to be used to print module-specific messages. By
    using this setting, you can configure syslog to send debug messages to
    using this setting, you can configure syslog to send debug messages to
@@ -212,35 +227,35 @@ modparam("debugger", "log_level", 1)
 
 
    Default value is "NULL" (default from core).
    Default value is "NULL" (default from core).
 
 
-   Example 1.4. Set log_facility parameter
+   Example 1.5. Set log_facility parameter
 ...
 ...
 modparam("debugger", "log_facility", "LOG_DAEMON")
 modparam("debugger", "log_facility", "LOG_DAEMON")
 ...
 ...
 
 
-3.5. log_prefix (str)
+3.6. log_prefix (str)
 
 
    String to print before any module-specific messages.
    String to print before any module-specific messages.
 
 
    Default value is "*** cfgtrace:".
    Default value is "*** cfgtrace:".
 
 
-   Example 1.5. Set log_prefix parameter
+   Example 1.6. Set log_prefix parameter
 ...
 ...
 modparam("debugger", "log_prefix", "from-debugger-with-love:")
 modparam("debugger", "log_prefix", "from-debugger-with-love:")
 ...
 ...
 
 
-3.6. step_usleep (int)
+3.7. step_usleep (int)
 
 
    Microseconds to sleep before checking for new commands when waiting at
    Microseconds to sleep before checking for new commands when waiting at
    a breakpoint.
    a breakpoint.
 
 
    Default value is "100000" (that is 0.1 sec).
    Default value is "100000" (that is 0.1 sec).
 
 
-   Example 1.6. Set step_usleep parameter
+   Example 1.7. Set step_usleep parameter
 ...
 ...
 modparam("debugger", "step_usleep", 500000)
 modparam("debugger", "step_usleep", 500000)
 ...
 ...
 
 
-3.7. step_loops (int)
+3.8. step_loops (int)
 
 
    How many sleeps of 'step_usleep' the RPC process performs when waiting
    How many sleeps of 'step_usleep' the RPC process performs when waiting
    for a reply from a worker process before responding to RPC. This avoids
    for a reply from a worker process before responding to RPC. This avoids
@@ -249,12 +264,12 @@ modparam("debugger", "step_usleep", 500000)
 
 
    Default value is "200".
    Default value is "200".
 
 
-   Example 1.7. Set step_loops parameter
+   Example 1.8. Set step_loops parameter
 ...
 ...
 modparam("debugger", "step_loops", 100)
 modparam("debugger", "step_loops", 100)
 ...
 ...
 
 
-3.8. mod_hash_size (int)
+3.9. mod_hash_size (int)
 
 
    Used to compute power of two as size of internal hash table to store
    Used to compute power of two as size of internal hash table to store
    levels per module (e.g., if its set to 4, internal hash table has 16
    levels per module (e.g., if its set to 4, internal hash table has 16
@@ -263,67 +278,67 @@ modparam("debugger", "step_loops", 100)
 
 
    Default value is "0" - feature disabled.
    Default value is "0" - feature disabled.
 
 
-   Example 1.8. Set mod_hash_size parameter
+   Example 1.9. Set mod_hash_size parameter
 ...
 ...
 modparam("debugger", "mod_hash_size", 5)
 modparam("debugger", "mod_hash_size", 5)
 ...
 ...
 
 
-3.9. mod_level_mode (int)
+3.10. mod_level_mode (int)
 
 
    Enable or disable per module log level (0 - disabled, 1 - enabled).
    Enable or disable per module log level (0 - disabled, 1 - enabled).
    This parameter is tunable via the Kamailio config framework.
    This parameter is tunable via the Kamailio config framework.
 
 
    Default value is "0".
    Default value is "0".
 
 
-   Example 1.9. Set mod_level_mode parameter
+   Example 1.10. Set mod_level_mode parameter
 ...
 ...
 modparam("debugger", "mod_level_mode", 1)
 modparam("debugger", "mod_level_mode", 1)
 ...
 ...
 
 
-3.10. mod_level (str)
+3.11. mod_level (str)
 
 
    Specify module log level - the value must be in the format:
    Specify module log level - the value must be in the format:
    modulename=level. The parameter can be set many times. For core log
    modulename=level. The parameter can be set many times. For core log
    level, use module name 'core'.
    level, use module name 'core'.
 
 
-   Example 1.10. Set mod_level parameter
+   Example 1.11. Set mod_level parameter
 ...
 ...
 modparam("debugger", "mod_level", "core=3")
 modparam("debugger", "mod_level", "core=3")
 modparam("debugger", "mod_level", "tm=3")
 modparam("debugger", "mod_level", "tm=3")
 ...
 ...
 
 
-3.11. log_assign (int)
+3.12. log_assign (int)
 
 
    Enable or disable log assign actions on config (0 - disabled, 1 -
    Enable or disable log assign actions on config (0 - disabled, 1 -
    enabled).
    enabled).
 
 
    Default value is "0".
    Default value is "0".
 
 
-   Example 1.11. Set log_assign parameter
+   Example 1.12. Set log_assign parameter
 ...
 ...
 modparam("debugger", "log_assign", 1)
 modparam("debugger", "log_assign", 1)
 ...
 ...
 
 
-3.12. cfgpkgcheck (int)
+3.13. cfgpkgcheck (int)
 
 
    If set, before each config action is done pkg memory check, useful to
    If set, before each config action is done pkg memory check, useful to
    detect buffer overflows.
    detect buffer overflows.
 
 
    Default value is "0" (disabled).
    Default value is "0" (disabled).
 
 
-   Example 1.12. Set cfgpkgcheck parameter
+   Example 1.13. Set cfgpkgcheck parameter
 ...
 ...
 modparam("debugger", "cfgpkgcheck", 1)
 modparam("debugger", "cfgpkgcheck", 1)
 ...
 ...
 
 
-3.13. reset_msgid (int)
+3.14. reset_msgid (int)
 
 
    Used to enable or disable the ability to reset the msgid ($mi) through
    Used to enable or disable the ability to reset the msgid ($mi) through
    the dbg.reset_msgid RPC command. (0 - disabled, 1 - enabled).
    the dbg.reset_msgid RPC command. (0 - disabled, 1 - enabled).
 
 
    Default value is "0" - feature disabled.
    Default value is "0" - feature disabled.
 
 
-   Example 1.13. Set reset_msgid parameter
+   Example 1.14. Set reset_msgid parameter
 ...
 ...
 modparam("debugger", "reset_msgid", 1)
 modparam("debugger", "reset_msgid", 1)
 ...
 ...
@@ -342,7 +357,7 @@ modparam("debugger", "reset_msgid", 1)
    Note that this version of the module does not export this anchors to
    Note that this version of the module does not export this anchors to
    RPC for interactive debugging (temporarily disabled).
    RPC for interactive debugging (temporarily disabled).
 
 
-   Example 1.14. dbg_breakpoint usage
+   Example 1.15. dbg_breakpoint usage
 ...
 ...
 if($si=="10.0.0.10")
 if($si=="10.0.0.10")
         dbg_breakpoint("1");
         dbg_breakpoint("1");
@@ -370,7 +385,7 @@ if($si=="10.0.0.10")
      * L_INFO - log level 2
      * L_INFO - log level 2
      * L_DBG - log level 3
      * L_DBG - log level 3
 
 
-   Example 1.15. dbg_pv_dump usage
+   Example 1.16. dbg_pv_dump usage
 ...
 ...
 $var(temp) = 1;
 $var(temp) = 1;
 $avp(s:more_avp) = 2;
 $avp(s:more_avp) = 2;

+ 7 - 2
modules/debugger/debugger_api.c

@@ -174,6 +174,11 @@ int _dbg_cfgtrace_facility = DEFAULT_FACILITY;
  */
  */
 char *_dbg_cfgtrace_prefix = "*** cfgtrace:";
 char *_dbg_cfgtrace_prefix = "*** cfgtrace:";
 
 
+/**
+ *
+ */
+char *_dbg_cfgtrace_lname = NULL;
+
 /**
 /**
  *
  *
  */
  */
@@ -322,8 +327,8 @@ int dbg_cfg_trace(void *data)
 	{
 	{
 		if(is_printable(_dbg_cfgtrace_level))
 		if(is_printable(_dbg_cfgtrace_level))
 		{
 		{
-			LOG_(_dbg_cfgtrace_facility, _dbg_cfgtrace_level,
-					_dbg_cfgtrace_prefix,
+			LOG__(_dbg_cfgtrace_facility, _dbg_cfgtrace_level,
+					_dbg_cfgtrace_lname, _dbg_cfgtrace_prefix,
 					" c=[%s] l=%d a=%d n=%.*s\n",
 					" c=[%s] l=%d a=%d n=%.*s\n",
 					ZSW(a->cfile), a->cline, a->type, an->len, ZSW(an->s)
 					ZSW(a->cfile), a->cline, a->type, an->len, ZSW(an->s)
 				);
 				);

+ 2 - 0
modules/debugger/debugger_mod.c

@@ -58,6 +58,7 @@ extern int _dbg_breakpoint;
 extern int _dbg_cfgtrace_level;
 extern int _dbg_cfgtrace_level;
 extern int _dbg_cfgtrace_facility;
 extern int _dbg_cfgtrace_facility;
 extern char *_dbg_cfgtrace_prefix;
 extern char *_dbg_cfgtrace_prefix;
+extern char *_dbg_cfgtrace_lname;
 extern int _dbg_step_usleep;
 extern int _dbg_step_usleep;
 extern int _dbg_step_loops;
 extern int _dbg_step_loops;
 extern int _dbg_reset_msgid;
 extern int _dbg_reset_msgid;
@@ -83,6 +84,7 @@ static param_export_t params[]={
 	{"log_level",         INT_PARAM, &_dbg_cfgtrace_level},
 	{"log_level",         INT_PARAM, &_dbg_cfgtrace_level},
 	{"log_facility",      STR_PARAM, &_dbg_cfgtrace_facility_str},
 	{"log_facility",      STR_PARAM, &_dbg_cfgtrace_facility_str},
 	{"log_prefix",        STR_PARAM, &_dbg_cfgtrace_prefix},
 	{"log_prefix",        STR_PARAM, &_dbg_cfgtrace_prefix},
+	{"log_level_name",    STR_PARAM, &_dbg_cfgtrace_lname},
 	{"log_assign",        INT_PARAM, &_dbg_log_assign},
 	{"log_assign",        INT_PARAM, &_dbg_log_assign},
 	{"step_usleep",       INT_PARAM, &_dbg_step_usleep},
 	{"step_usleep",       INT_PARAM, &_dbg_step_usleep},
 	{"step_loops",        INT_PARAM, &_dbg_step_loops},
 	{"step_loops",        INT_PARAM, &_dbg_step_loops},

+ 20 - 0
modules/debugger/doc/debugger_admin.xml

@@ -137,6 +137,26 @@ modparam("debugger", "log_level", 1)
 	    </example>
 	    </example>
 	</section>
 	</section>
 
 
+	<section id="dbg.p.log_level_name">
+	    <title><varname>log_level_name</varname> (str)</title>
+	    <para>
+			What log level name is to be used to print cfg trace messages.
+	    </para>
+	    <para>
+		<emphasis>
+		    Default value is <quote>NULL</quote> (use default log names).
+		</emphasis>
+	    </para>
+	    <example>
+		<title>Set <varname>log_level_name</varname> parameter</title>
+		<programlisting format="linespecific">
+...
+modparam("debugger", "log_level_name", "exec")
+...
+</programlisting>
+	    </example>
+	</section>
+
 	<section id="dbg.p.log_facility">
 	<section id="dbg.p.log_facility">
 	    <title><varname>log_facility</varname> (str)</title>
 	    <title><varname>log_facility</varname> (str)</title>
 	    <para>
 	    <para>