gint log_level, const gchar *message,
gpointer arg);
+guint rspamd_task_log_id = (guint)-1;
+RSPAMD_CONSTRUCTOR(rspamd_task_log_init)
+{
+ rspamd_task_log_id = rspamd_logger_add_debug_module("task");
+}
+
/**
* Calculate checksum for log line (used for repeating logic)
*/
m->mname = g_strdup (mname);
m->id = rspamd_logger_allocate_mod_bit ();
clrbit (log_modules->bitset, m->id);
+ g_hash_table_insert (log_modules->modules, m->mname, m);
}
return m->id;
while (g_hash_table_iter_next (&it, &k, &v)) {
id = rspamd_logger_add_debug_module ((const gchar *)k);
-
+ msg_info ("enable debugging for module %s (%d)", (const gchar *)k, id);
setbit (log_modules->bitset, id);
}
}
\ No newline at end of file
* Macro to use for faster debug modules
*/
#define INIT_LOG_MODULE(mname) \
- static guint mname##_log_id = (guint)-1; \
- static RSPAMD_CONSTRUCTOR(mname##_log_init) { \
- mname##_log_id = rspamd_logger_add_debug_module(#mname); \
+ static guint rspamd_##mname##_log_id = (guint)-1; \
+ RSPAMD_CONSTRUCTOR(rspamd_##mname##_log_init) { \
+ rspamd_##mname##_log_id = rspamd_logger_add_debug_module(#mname); \
}
void rspamd_logger_configure_modules (GHashTable *mods_enabled);
/* Typical functions */
+extern guint rspamd_task_log_id;
+
/* Logging in postfix style */
#define msg_err(...) rspamd_default_log_function (G_LOG_LEVEL_CRITICAL, \
NULL, NULL, \
NULL, NULL, \
G_STRFUNC, \
__VA_ARGS__)
-#define debug_task(...) rspamd_conditional_debug (NULL, \
+
+#define debug_task(...) rspamd_conditional_debug_fast (NULL, \
task->from_addr, \
- "task", task->task_pool->tag.uid, \
+ rspamd_task_log_id, "task", task->task_pool->tag.uid, \
G_STRFUNC, \
__VA_ARGS__)
task->task_pool->tag.tagname, task->task_pool->tag.uid, \
G_STRFUNC, \
__VA_ARGS__)
-#define msg_debug_task(...) rspamd_default_log_function (G_LOG_LEVEL_DEBUG, \
- "task", task->task_pool->tag.uid, \
+#define msg_debug_task(...) rspamd_conditional_debug_fast (NULL, task->from_addr, \
+ rspamd_task_log_id, "task", task->task_pool->tag.uid, \
G_STRFUNC, \
__VA_ARGS__)
#define msg_err_task_encrypted(...) rspamd_default_log_function (G_LOG_LEVEL_CRITICAL|RSPAMD_LOG_ENCRYPTED, \
task->task_pool->tag.tagname, task->task_pool->tag.uid, \
G_STRFUNC, \
__VA_ARGS__)
-#define msg_debug_task_encrypted(...) rspamd_default_log_function (G_LOG_LEVEL_DEBUG|RSPAMD_LOG_ENCRYPTED, \
- task->task_pool->tag.tagname, task->task_pool->tag.uid, \
- G_STRFUNC, \
- __VA_ARGS__)
/* Check for NULL pointer first */
#define msg_err_task_check(...) rspamd_default_log_function (G_LOG_LEVEL_CRITICAL, \
task ? task->task_pool->tag.tagname : NULL, task ? task->task_pool->tag.uid : NULL, \
task ? task->task_pool->tag.tagname : NULL, task ? task->task_pool->tag.uid : NULL, \
G_STRFUNC, \
__VA_ARGS__)
-#define msg_debug_task_check(...) rspamd_default_log_function (G_LOG_LEVEL_DEBUG, \
- task ? task->task_pool->tag.tagname : NULL, task ? task->task_pool->tag.uid : NULL, \
+#define msg_debug_task_check(...) rspamd_conditional_debug_fast (NULL, \
+ task ? task->from_addr : NULL, \
+ rspamd_task_log_id, "task", task ? task->task_pool->tag.uid : NULL, \
G_STRFUNC, \
__VA_ARGS__)
pool->tag.tagname, pool->tag.uid, \
G_STRFUNC, \
__VA_ARGS__)
-#define msg_debug_pool(...) rspamd_default_log_function (G_LOG_LEVEL_DEBUG, \
+#define msg_debug_pool(...) rspamd_conditional_debug (NULL, NULL, \
pool->tag.tagname, pool->tag.uid, \
G_STRFUNC, \
__VA_ARGS__)
pool ? pool->tag.tagname : NULL, pool ? pool->tag.uid : NULL, \
G_STRFUNC, \
__VA_ARGS__)
-#define msg_info_pool_check(...) rspamd_default_log_function (G_LOG_LEVEL_INFO, \
+#define msg_info_pool_check(...) rspamd_conditional_debug (NULL, NULL, \
+ G_LOG_LEVEL_INFO, \
pool ? pool->tag.tagname : NULL, pool ? pool->tag.uid : NULL, \
G_STRFUNC, \
__VA_ARGS__)
-#define msg_debug_pool_check(...) rspamd_default_log_function (G_LOG_LEVEL_DEBUG, \
+#define msg_debug_pool_check(...) rspamd_conditional_debug (NULL, NULL, \
pool ? pool->tag.tagname : NULL, pool ? pool->tag.uid : NULL, \
- G_STRFUNC, \
- __VA_ARGS__)
+ G_STRFUNC, \
+ __VA_ARGS__)
#endif