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.2. breakpoint (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
 
@@ -59,18 +60,19 @@ Daniel-Constantin Mierla
    1.1. Set cfgtrace parameter
    1.2. Set breakpoint 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
 
@@ -87,16 +89,17 @@ Chapter 1. Admin Guide
         3.1. cfgtrace (int)
         3.2. breakpoint (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
 
@@ -157,16 +160,17 @@ Chapter 1. Admin Guide
    3.1. cfgtrace (int)
    3.2. breakpoint (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)
 
@@ -204,7 +208,18 @@ modparam("debugger", "breakpoint", 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
    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).
 
-   Example 1.4. Set log_facility parameter
+   Example 1.5. Set log_facility parameter
 ...
 modparam("debugger", "log_facility", "LOG_DAEMON")
 ...
 
-3.5. log_prefix (str)
+3.6. log_prefix (str)
 
    String to print before any module-specific messages.
 
    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:")
 ...
 
-3.6. step_usleep (int)
+3.7. step_usleep (int)
 
    Microseconds to sleep before checking for new commands when waiting at
    a breakpoint.
 
    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)
 ...
 
-3.7. step_loops (int)
+3.8. step_loops (int)
 
    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
@@ -249,12 +264,12 @@ modparam("debugger", "step_usleep", 500000)
 
    Default value is "200".
 
-   Example 1.7. Set step_loops parameter
+   Example 1.8. Set step_loops parameter
 ...
 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
    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.
 
-   Example 1.8. Set mod_hash_size parameter
+   Example 1.9. Set mod_hash_size parameter
 ...
 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).
    This parameter is tunable via the Kamailio config framework.
 
    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)
 ...
 
-3.10. mod_level (str)
+3.11. mod_level (str)
 
    Specify module log level - the value must be in the format:
    modulename=level. The parameter can be set many times. For core log
    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", "tm=3")
 ...
 
-3.11. log_assign (int)
+3.12. log_assign (int)
 
    Enable or disable log assign actions on config (0 - disabled, 1 -
    enabled).
 
    Default value is "0".
 
-   Example 1.11. Set log_assign parameter
+   Example 1.12. Set log_assign parameter
 ...
 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
    detect buffer overflows.
 
    Default value is "0" (disabled).
 
-   Example 1.12. Set cfgpkgcheck parameter
+   Example 1.13. Set cfgpkgcheck parameter
 ...
 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
    the dbg.reset_msgid RPC command. (0 - disabled, 1 - enabled).
 
    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)
 ...
@@ -342,7 +357,7 @@ modparam("debugger", "reset_msgid", 1)
    Note that this version of the module does not export this anchors to
    RPC for interactive debugging (temporarily disabled).
 
-   Example 1.14. dbg_breakpoint usage
+   Example 1.15. dbg_breakpoint usage
 ...
 if($si=="10.0.0.10")
         dbg_breakpoint("1");
@@ -370,7 +385,7 @@ if($si=="10.0.0.10")
      * L_INFO - log level 2
      * L_DBG - log level 3
 
-   Example 1.15. dbg_pv_dump usage
+   Example 1.16. dbg_pv_dump usage
 ...
 $var(temp) = 1;
 $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_lname = NULL;
+
 /**
  *
  */
@@ -322,8 +327,8 @@ int dbg_cfg_trace(void *data)
 	{
 		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",
 					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_facility;
 extern char *_dbg_cfgtrace_prefix;
+extern char *_dbg_cfgtrace_lname;
 extern int _dbg_step_usleep;
 extern int _dbg_step_loops;
 extern int _dbg_reset_msgid;
@@ -83,6 +84,7 @@ static param_export_t params[]={
 	{"log_level",         INT_PARAM, &_dbg_cfgtrace_level},
 	{"log_facility",      STR_PARAM, &_dbg_cfgtrace_facility_str},
 	{"log_prefix",        STR_PARAM, &_dbg_cfgtrace_prefix},
+	{"log_level_name",    STR_PARAM, &_dbg_cfgtrace_lname},
 	{"log_assign",        INT_PARAM, &_dbg_log_assign},
 	{"step_usleep",       INT_PARAM, &_dbg_step_usleep},
 	{"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>
 	</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">
 	    <title><varname>log_facility</varname> (str)</title>
 	    <para>