25 #ifndef MESSAGES_H_INCLUDED
26 #define MESSAGES_H_INCLUDED
61 #define evt_tag_error(tag) evt_tag_errno(tag, __local_copy_of_errno)
63 #define CAPTURE_ERRNO(lambda) do {\
64 int __local_copy_of_errno G_GNUC_UNUSED = errno; \
70 #define msg_fatal(desc, tags...) CAPTURE_ERRNO(\
71 msg_event_suppress_recursions_and_send(msg_event_create(EVT_PRI_CRIT, desc, ##tags, NULL )))
72 #define msg_error(desc, tags...) CAPTURE_ERRNO(\
73 msg_event_suppress_recursions_and_send(msg_event_create(EVT_PRI_ERR, desc, ##tags, NULL )))
74 #define msg_warning(desc, tags...) CAPTURE_ERRNO(\
75 msg_event_suppress_recursions_and_send(msg_event_create(EVT_PRI_WARNING, desc, ##tags, NULL )))
76 #define msg_notice(desc, tags...) CAPTURE_ERRNO(\
77 msg_event_suppress_recursions_and_send(msg_event_create(EVT_PRI_NOTICE, desc, ##tags, NULL )))
78 #define msg_info(desc, tags...) CAPTURE_ERRNO(\
79 msg_event_suppress_recursions_and_send(msg_event_create(EVT_PRI_INFO, desc, ##tags, NULL )))
83 #define msg_progress(desc, tags...) \
86 char *timestamp, *newdesc; \
89 timestamp = ctime(&t); \
90 timestamp[strlen(timestamp) - 1] = 0; \
91 newdesc = g_strdup_printf("[%s] %s", timestamp, desc); \
92 msg_event_send(msg_event_create(EVT_PRI_INFO, newdesc, ##tags, NULL )); \
96 #define msg_verbose(desc, tags...) \
98 if (G_UNLIKELY(verbose_flag)) \
99 msg_info(desc, ##tags ); \
102 #define msg_debug(desc, tags...) \
104 if (G_UNLIKELY(debug_flag)) \
105 CAPTURE_ERRNO(msg_event_suppress_recursions_and_send( \
106 msg_event_create(EVT_PRI_DEBUG, desc, ##tags, NULL ))); \
109 #define msg_trace(desc, tags...) \
111 if (G_UNLIKELY(trace_flag)) \
112 CAPTURE_ERRNO(msg_event_suppress_recursions_and_send( \
113 msg_event_create(EVT_PRI_DEBUG, desc, ##tags, NULL ))); \
116 #define msg_trace_printf(fmt, values...) \
118 if (G_UNLIKELY(trace_flag)) \
119 msg_send_message_printf(EVT_PRI_DEBUG, fmt, ##values); \
122 #define msg_diagnostics(desc, tags...) \
124 if (G_UNLIKELY(trace_flag)) \
125 CAPTURE_ERRNO(msg_event_print_event_to_stderr( \
126 msg_event_create(EVT_PRI_DEBUG, desc, ##tags, NULL ))); \
131 static gboolean __guard = TRUE; \
132 gboolean __current_guard = __guard; \
137 #define msg_warning_once(desc, tags...) \
140 msg_warning(desc, ##tags ); \
void msg_event_send(EVTREC *e)
Definition: messages.c:210
void msg_set_context(LogMessage *msg)
Definition: messages.c:88
int debug_flag
Definition: messages.c:63
EVTREC * msg_event_create(gint prio, const char *desc, EVTTAG *tag1,...) __attribute__((nonnull(2)))
void msg_set_post_func(MsgPostFunc func)
Definition: messages.c:299
void msg_deinit(void)
Definition: messages.c:392
void(* MsgPostFunc)(LogMessage *msg)
Definition: messages.h:38
void msg_send_message_printf(int prio, const gchar *fmt,...) G_GNUC_PRINTF(2
int verbose_flag
Definition: messages.c:64
int trace_flag
Definition: messages.c:65
void msg_event_free(EVTREC *e)
Definition: messages.c:275
void msg_post_message(LogMessage *msg)
Definition: messages.c:305
gint msg_map_string_to_log_level(const gchar *log_level)
Definition: messages.c:314
void msg_event_print_event_to_stderr(EVTREC *e)
Definition: messages.c:223
void msg_add_option_group(GOptionContext *ctx)
Definition: messages.c:453
void msg_set_log_level(gint new_log_level)
Definition: messages.c:328
void msg_apply_config_log_level(gint new_log_level)
Definition: messages.c:362
void msg_apply_cmdline_log_level(gint new_log_level)
Definition: messages.c:355
int startup_debug_flag
Definition: messages.c:62
EVTREC * msg_event_create_from_desc(gint prio, const char *desc)
Definition: messages.c:269
void msg_init(gboolean interactive)
Definition: messages.c:372
void msg_event_suppress_recursions_and_send(EVTREC *e)
Definition: messages.c:216
void msg_send_formatted_message(int prio, const char *msg)
Definition: messages.c:161
gint msg_get_log_level(void)
Definition: messages.c:347
int log_stderr
Definition: messages.c:66
__attribute__((__visibility__("hidden")))
Definition: native-parser.c:32
LogMessage * msg
Definition: test_rename.c:35