Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

logger.h File Reference

#include <stdarg.h>

Go to the source code of this file.

Defines

#define EVENTLOG   "event_log"
#define DEBUG_M(a)
#define _A_   __FILE__, __LINE__, __PRETTY_FUNCTION__
#define LOG_DEBUG   0, _A_
#define LOG_EVENT   1, _A_
#define LOG_NOTICE   2, _A_
#define LOG_WARNING   3, _A_
#define LOG_ERROR   4, _A_

Functions

void ast_log (int level, const char *file, int line, const char *function, const char *fmt,...) __attribute__((format(printf
 Used for sending a log message.

void ast_verbose (const char *fmt,...) __attribute__((format(printf
 Send a verbose message (based on verbose level).

int ast_register_verbose (void(*verboser)(const char *string, int opos, int replacelast, int complete))
int ast_unregister_verbose (void(*verboser)(const char *string, int opos, int replacelast, int complete))
int ast_verbose_dmesg (void(*verboser)(const char *string, int opos, int replacelast, int complete))


Define Documentation

#define _A_   __FILE__, __LINE__, __PRETTY_FUNCTION__
 

Definition at line 57 of file logger.h.

#define DEBUG_M  ) 
 

Value:

{ \
   a; \
}

Definition at line 25 of file logger.h.

#define EVENTLOG   "event_log"
 

Definition at line 23 of file logger.h.

Referenced by init_logger(), and reload_logger().

#define LOG_DEBUG   0, _A_
 

Definition at line 59 of file logger.h.

Referenced by ast_channel_bridge(), ast_channel_masquerade(), ast_channel_register_ex(), ast_channel_unregister(), ast_context_create(), ast_db_del(), ast_db_get(), ast_dsp_process(), ast_get_enum(), ast_get_srv(), ast_hangup(), ast_indicate(), ast_io_add(), ast_io_dump(), ast_io_wait(), ast_pbx_run(), ast_prod(), ast_queue_frame(), ast_read(), ast_rtcp_read(), ast_rtp_bridge(), ast_rtp_read(), ast_rtp_write(), ast_say_number(), ast_say_number_full(), ast_sched_add(), ast_sched_del(), ast_sched_dump(), ast_sched_runq(), ast_sched_wait(), ast_set_read_format(), ast_set_write_format(), ast_settimeout(), ast_softhangup_nolock(), ast_streamfile(), ast_verbose(), ast_waitstream(), ast_waitstream_fr(), ast_waitstream_full(), ast_writestream(), load_modules(), and pbx_substitute_variables_helper().

#define LOG_ERROR   4, _A_
 

Definition at line 63 of file logger.h.

Referenced by ast_channel_setoption(), ast_register_application(), ast_register_switch(), ast_unregister_application(), ast_unregister_switch(), callerid_feed(), init_logger(), load_pbx(), main(), reload_logger(), and tdd_feed().

#define LOG_EVENT   1, _A_
 

Definition at line 60 of file logger.h.

Referenced by init_logger(), and reload_logger().

#define LOG_NOTICE   2, _A_
 

Definition at line 61 of file logger.h.

Referenced by ast_app_getvoice(), ast_db_get(), ast_get_indication_zone(), ast_io_remove(), ast_read(), ast_request_and_dial(), ast_rtp_read(), ast_rtp_senddigit(), ast_sched_add(), ast_sched_del(), ast_sched_runq(), ast_set_read_format(), ast_set_write_format(), ast_unregister_indication_country(), callerid_feed(), init_manager(), pbx_substitute_variables_helper(), and tdd_feed().

#define LOG_WARNING   3, _A_
 

Definition at line 62 of file logger.h.

Referenced by __ast_context_destroy(), ast_add_extension2(), ast_app_getvoice(), ast_append_ha(), ast_async_goto(), ast_autoservice_start(), ast_best_codec(), ast_cdr_answer(), ast_cdr_busy(), ast_cdr_end(), ast_cdr_free(), ast_cdr_init(), ast_cdr_post(), ast_cdr_register(), ast_cdr_setapp(), ast_cdr_setdestchan(), ast_cdr_start(), ast_channel_alloc(), ast_channel_bridge(), ast_channel_free(), ast_channel_make_compatible(), ast_channel_masquerade(), ast_channel_register_ex(), ast_channel_unregister(), ast_cli_command(), ast_cli_register(), ast_cli_unregister(), ast_context_add_ignorepat2(), ast_context_add_include2(), ast_context_add_switch2(), ast_context_create(), ast_db_gettree(), ast_db_put(), ast_device_state(), ast_dsp_call_progress(), ast_dsp_digitdetect(), ast_dsp_process(), ast_dsp_silence(), ast_format_register(), ast_format_unregister(), ast_fr_fdread(), ast_fr_fdwrite(), ast_frisolate(), ast_get_enum(), ast_get_indication_tone(), ast_get_indication_zone(), ast_get_ip(), ast_get_srv(), ast_hangup(), ast_indicate(), ast_io_remove(), ast_load_resource(), ast_loader_register(), ast_loader_unregister(), ast_lookup_iface(), ast_manager_register(), ast_merge_contexts_and_delete(), ast_openstream(), ast_openvstream(), ast_ouraddrfor(), ast_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_pbx_run(), ast_pbx_start(), ast_playtones_start(), ast_prod(), ast_queue_frame(), ast_read(), ast_read_image(), ast_register_application(), ast_register_indication(), ast_register_indication_country(), ast_register_switch(), ast_register_translator(), ast_request(), ast_rtcp_read(), ast_rtp_bridge(), ast_rtp_new(), ast_rtp_proto_register(), ast_rtp_read(), ast_rtp_reload(), ast_rtp_senddigit(), ast_rtp_settos(), ast_rtp_write(), ast_say_date(), ast_say_datetime(), ast_say_datetime_from_now(), ast_say_time(), ast_smoother_feed(), ast_stopstream(), ast_streamfile(), ast_translate(), ast_translator_build_path(), ast_unload_resource(), ast_unregister_indication(), ast_unregister_indication_country(), ast_update_use_count(), ast_var_assign(), ast_waitfor_nandfds(), ast_waitstream(), ast_waitstream_fr(), ast_waitstream_full(), ast_write(), ast_writefile(), ast_writestream(), callerid_feed(), callerid_new(), init_manager(), load_modules(), main(), pbx_exec(), pbx_findapp(), tdd_feed(), and tdd_new().


Function Documentation

void ast_log int  level,
const char *  file,
int  line,
const char *  function,
const char *  fmt,
... 
 

Used for sending a log message.

Parameters:
level don't need to worry about it
file ditto
line ditto
function ditto
fmt this is what is important. The format is the same as your favorite breed of printf. You know how that works, right? :-) This is the standard logger function. Probably the only way you will invoke it would be something like this: ast_log(LOG_WHATEVER, "Problem with the %s Captain. We should get some more. Will %d be enough?", "flux capacitor", 10); where WHATEVER is one of ERROR, DEBUG, EVENT, NOTICE, or WARNING depending on which log you wish to output to.

Referenced by __ast_context_destroy(), ast_add_extension2(), ast_app_getvoice(), ast_append_ha(), ast_async_goto(), ast_autoservice_start(), ast_best_codec(), ast_cdr_answer(), ast_cdr_busy(), ast_cdr_end(), ast_cdr_free(), ast_cdr_init(), ast_cdr_post(), ast_cdr_register(), ast_cdr_setapp(), ast_cdr_setdestchan(), ast_cdr_start(), ast_channel_alloc(), ast_channel_bridge(), ast_channel_free(), ast_channel_make_compatible(), ast_channel_masquerade(), ast_channel_register_ex(), ast_channel_setoption(), ast_channel_unregister(), ast_cli_command(), ast_cli_register(), ast_cli_unregister(), ast_context_add_ignorepat2(), ast_context_add_include2(), ast_context_add_switch2(), ast_context_create(), ast_db_del(), ast_db_get(), ast_db_gettree(), ast_db_put(), ast_device_state(), ast_dsp_call_progress(), ast_dsp_digitdetect(), ast_dsp_process(), ast_dsp_silence(), ast_format_register(), ast_format_unregister(), ast_fr_fdread(), ast_fr_fdwrite(), ast_frisolate(), ast_get_enum(), ast_get_indication_tone(), ast_get_indication_zone(), ast_get_ip(), ast_get_srv(), ast_hangup(), ast_indicate(), ast_io_add(), ast_io_dump(), ast_io_remove(), ast_io_wait(), ast_load_resource(), ast_loader_register(), ast_loader_unregister(), ast_lookup_iface(), ast_manager_register(), ast_merge_contexts_and_delete(), ast_openstream(), ast_openvstream(), ast_ouraddrfor(), ast_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_pbx_run(), ast_pbx_start(), ast_playtones_start(), ast_prod(), ast_queue_frame(), ast_read(), ast_read_image(), ast_register_application(), ast_register_indication(), ast_register_indication_country(), ast_register_switch(), ast_register_translator(), ast_request(), ast_request_and_dial(), ast_rtcp_read(), ast_rtp_bridge(), ast_rtp_new(), ast_rtp_proto_register(), ast_rtp_read(), ast_rtp_reload(), ast_rtp_senddigit(), ast_rtp_settos(), ast_rtp_write(), ast_say_date(), ast_say_datetime(), ast_say_datetime_from_now(), ast_say_number(), ast_say_number_full(), ast_say_time(), ast_sched_add(), ast_sched_del(), ast_sched_dump(), ast_sched_runq(), ast_sched_wait(), ast_set_read_format(), ast_set_write_format(), ast_settimeout(), ast_smoother_feed(), ast_softhangup_nolock(), ast_stopstream(), ast_streamfile(), ast_translate(), ast_translator_build_path(), ast_unload_resource(), ast_unregister_application(), ast_unregister_indication(), ast_unregister_indication_country(), ast_unregister_switch(), ast_update_use_count(), ast_var_assign(), ast_verbose(), ast_waitfor_nandfds(), ast_waitstream(), ast_waitstream_fr(), ast_waitstream_full(), ast_write(), ast_writefile(), ast_writestream(), callerid_feed(), callerid_new(), init_logger(), init_manager(), load_modules(), load_pbx(), main(), pbx_exec(), pbx_findapp(), pbx_substitute_variables_helper(), reload_logger(), tdd_feed(), and tdd_new().

int ast_register_verbose void(*  verboser)(const char *string, int opos, int replacelast, int complete)  ) 
 

Definition at line 366 of file logger.c.

References ast_mutex_lock, ast_mutex_unlock, and malloc.

Referenced by main().

00367 {
00368    struct msglist *m;
00369    struct verb *tmp;
00370    /* XXX Should be more flexible here, taking > 1 verboser XXX */
00371    if ((tmp = malloc(sizeof (struct verb)))) {
00372       tmp->verboser = v;
00373       ast_mutex_lock(&msglist_lock);
00374       tmp->next = verboser;
00375       verboser = tmp;
00376       m = list;
00377       while(m) {
00378          /* Send all the existing entries that we have queued (i.e. they're likely to have missed) */
00379          v(m->msg, 0, 0, 1);
00380          m = m->next;
00381       }
00382       ast_mutex_unlock(&msglist_lock);
00383       return 0;
00384    }
00385    return -1;
00386 }

int ast_unregister_verbose void(*  verboser)(const char *string, int opos, int replacelast, int complete)  ) 
 

Definition at line 388 of file logger.c.

References ast_mutex_lock, ast_mutex_unlock, and free.

00389 {
00390    int res = -1;
00391    struct verb *tmp, *tmpl=NULL;
00392    ast_mutex_lock(&msglist_lock);
00393    tmp = verboser;
00394    while(tmp) {
00395       if (tmp->verboser == v) {
00396          if (tmpl)
00397             tmpl->next = tmp->next;
00398          else
00399             verboser = tmp->next;
00400          free(tmp);
00401          break;
00402       }
00403       tmpl = tmp;
00404       tmp = tmp->next;
00405    }
00406    if (tmp)
00407       res = 0;
00408    ast_mutex_unlock(&msglist_lock);
00409    return res;
00410 }

void ast_verbose const char *  fmt,
... 
 

Send a verbose message (based on verbose level).

This works like ast_log, but prints verbose messages to the console depending on verbosity level set. ast_verbose(VERBOSE_PREFIX_3 "Whatever %s is happening\n", "nothing"); This will print the message to the console if the verbose level is set to a level >= 3 Note the abscence of a comma after the VERBOSE_PREFIX_3. This is important. VERBOSE_PREFIX_1 through VERBOSE_PREFIX_3 are defined.

Referenced by ast_channel_bridge(), ast_channel_register_ex(), ast_context_add_include2(), ast_context_add_switch2(), ast_context_create(), ast_format_register(), ast_format_unregister(), ast_frame_dump(), ast_image_register(), ast_image_unregister(), ast_load_resource(), ast_manager_register(), ast_manager_unregister(), ast_module_reload(), ast_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_pbx_run(), ast_register_application(), ast_register_indication_country(), ast_register_translator(), ast_rtp_reload(), ast_save(), ast_set_indication_country(), ast_streamfile(), ast_unregister_application(), ast_unregister_indication_country(), init_logger(), init_manager(), load_modules(), load_pbx(), main(), pbx_builtin_setvar_helper(), and reload_logger().

int ast_verbose_dmesg void(*  verboser)(const char *string, int opos, int replacelast, int complete)  ) 
 

Definition at line 352 of file logger.c.

References ast_mutex_lock, and ast_mutex_unlock.

00353 {
00354    struct msglist *m;
00355    m = list;
00356    ast_mutex_lock(&msglist_lock);
00357    while(m) {
00358       /* Send all the existing entries that we have queued (i.e. they're likely to have missed) */
00359       v(m->msg, 0, 0, 1);
00360       m = m->next;
00361    }
00362    ast_mutex_unlock(&msglist_lock);
00363    return 0;
00364 }


Generated on Fri Oct 31 07:05:14 2003 for Asterisk by doxygen 1.3.4