Thu Apr 28 2011 17:15:33

Asterisk developer's documentation


app_verbose.c File Reference

Verbose logging application. More...

#include "asterisk.h"
#include "asterisk/module.h"
#include "asterisk/app.h"
#include "asterisk/channel.h"
Include dependency graph for app_verbose.c:

Go to the source code of this file.

Functions

static void __reg_module (void)
static void __unreg_module (void)
static int load_module (void)
static int log_exec (struct ast_channel *chan, void *data)
static int unload_module (void)
static int verbose_exec (struct ast_channel *chan, void *data)

Variables

static struct ast_module_info
__MODULE_INFO_SECTION 
__mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Send verbose output" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, }
static char * app_log = "Log"
static char * app_verbose = "Verbose"
static struct ast_module_infoast_module_info = &__mod_info

Detailed Description

Verbose logging application.

Author:
Tilghman Lesher <app_verbose_v001@the-tilghman.com>

Definition in file app_verbose.c.


Function Documentation

static void __reg_module ( void  ) [static]

Definition at line 185 of file app_verbose.c.

static void __unreg_module ( void  ) [static]

Definition at line 185 of file app_verbose.c.

static int load_module ( void  ) [static]
static int log_exec ( struct ast_channel chan,
void *  data 
) [static]

Definition at line 121 of file app_verbose.c.

References __LOG_DEBUG, __LOG_DTMF, __LOG_ERROR, __LOG_EVENT, __LOG_NOTICE, __LOG_VERBOSE, __LOG_WARNING, AST_APP_ARG, AST_DECLARE_APP_ARGS, ast_log(), AST_MAX_EXTENSION, AST_STANDARD_APP_ARGS, ast_strdupa, ast_strlen_zero(), ast_channel::context, context, ast_channel::exten, LOG_ERROR, msg, parse(), and ast_channel::priority.

Referenced by load_module().

{
   char *parse;
   int lnum = -1;
   char extension[AST_MAX_EXTENSION + 5], context[AST_MAX_EXTENSION + 2];
   AST_DECLARE_APP_ARGS(args,
      AST_APP_ARG(level);
      AST_APP_ARG(msg);
   );

   if (ast_strlen_zero(data))
      return 0;

   parse = ast_strdupa(data);
   AST_STANDARD_APP_ARGS(args, parse);

   if (!strcasecmp(args.level, "ERROR")) {
      lnum = __LOG_ERROR;
   } else if (!strcasecmp(args.level, "WARNING")) {
      lnum = __LOG_WARNING;
   } else if (!strcasecmp(args.level, "NOTICE")) {
      lnum = __LOG_NOTICE;
   } else if (!strcasecmp(args.level, "DEBUG")) {
      lnum = __LOG_DEBUG;
   } else if (!strcasecmp(args.level, "VERBOSE")) {
      lnum = __LOG_VERBOSE;
   } else if (!strcasecmp(args.level, "DTMF")) {
      lnum = __LOG_DTMF;
   } else if (!strcasecmp(args.level, "EVENT")) {
      lnum = __LOG_EVENT;
   } else {
      ast_log(LOG_ERROR, "Unknown log level: '%s'\n", args.level);
   }

   if (lnum > -1) {
      snprintf(context, sizeof(context), "@ %s", chan->context);
      snprintf(extension, sizeof(extension), "Ext. %s", chan->exten);

      ast_log(lnum, extension, chan->priority, context, "%s\n", args.msg);
   }

   return 0;
}
static int unload_module ( void  ) [static]

Definition at line 165 of file app_verbose.c.

References ast_unregister_application().

static int verbose_exec ( struct ast_channel chan,
void *  data 
) [static]

Definition at line 75 of file app_verbose.c.

References AST_APP_ARG, AST_DECLARE_APP_ARGS, ast_log(), AST_STANDARD_APP_ARGS, ast_strdupa, ast_strlen_zero(), ast_verbose(), LOG_WARNING, msg, option_verbose, parse(), VERBOSE_PREFIX_1, VERBOSE_PREFIX_2, VERBOSE_PREFIX_3, and VERBOSE_PREFIX_4.

Referenced by load_module().

{
   int vsize;
   char *parse;
   AST_DECLARE_APP_ARGS(args,
      AST_APP_ARG(level);
      AST_APP_ARG(msg);
   );

   if (ast_strlen_zero(data)) {
      return 0;
   }

   parse = ast_strdupa(data);
   AST_STANDARD_APP_ARGS(args, parse);
   if (args.argc == 1) {
      args.msg = args.level;
      args.level = "0";
   }

   if (sscanf(args.level, "%30d", &vsize) != 1) {
      vsize = 0;
      ast_log(LOG_WARNING, "'%s' is not a verboser number\n", args.level);
   }
   if (option_verbose >= vsize) {
      switch (vsize) {
      case 0:
         ast_verbose("%s\n", args.msg);
         break;
      case 1:
         ast_verbose(VERBOSE_PREFIX_1 "%s\n", args.msg);
         break;
      case 2:
         ast_verbose(VERBOSE_PREFIX_2 "%s\n", args.msg);
         break;
      case 3:
         ast_verbose(VERBOSE_PREFIX_3 "%s\n", args.msg);
         break;
      default:
         ast_verbose(VERBOSE_PREFIX_4 "%s\n", args.msg);
      }
   }

   return 0;
}

Variable Documentation

struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Send verbose output" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static]

Definition at line 185 of file app_verbose.c.

char* app_log = "Log" [static]

Definition at line 36 of file app_verbose.c.

char* app_verbose = "Verbose" [static]

Definition at line 35 of file app_verbose.c.

Definition at line 185 of file app_verbose.c.