projects
/
citadel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b5d5b28
)
Make logging configurable
author
Wilfried Goesgens
<dothebart@citadel.org>
Sat, 28 Apr 2012 16:04:07 +0000
(18:04 +0200)
committer
Wilfried Goesgens
<dothebart@citadel.org>
Sat, 28 Apr 2012 16:04:07 +0000
(18:04 +0200)
- event loop
- c-ares
citadel/event_client.c
patch
|
blob
|
history
citadel/event_client.h
patch
|
blob
|
history
citadel/modules/c-ares-dns/serv_c-ares-dns.c
patch
|
blob
|
history
citadel/modules/eventclient/serv_eventclient.c
patch
|
blob
|
history
diff --git
a/citadel/event_client.c
b/citadel/event_client.c
index d0e0fd9aefe9f20295a8827fda8fb5dabcf3f26b..15b5f44a7270b4d903a90f0bc88e944e4b356864 100644
(file)
--- a/
citadel/event_client.c
+++ b/
citadel/event_client.c
@@
-987,10
+987,12
@@
void EV_backtrace(AsyncIO *IO)
size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*));
strings = backtrace_symbols(stack_frames, size);
for (i = 0; i < size; i++) {
size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*));
strings = backtrace_symbols(stack_frames, size);
for (i = 0; i < size; i++) {
- if (strings != NULL)
+ if (strings != NULL)
{
EV_syslog(LOG_ALERT, " BT %s\n", strings[i]);
EV_syslog(LOG_ALERT, " BT %s\n", strings[i]);
- else
+ }
+ else {
EV_syslog(LOG_ALERT, " BT %p\n", stack_frames[i]);
EV_syslog(LOG_ALERT, " BT %p\n", stack_frames[i]);
+ }
}
free(strings);
#endif
}
free(strings);
#endif
diff --git
a/citadel/event_client.h
b/citadel/event_client.h
index 2d5ab986161d1a7a85de628b766d2dec5f2fec29..90f5247a61126be23a8a99436f5e9677d01c93cf 100644
(file)
--- a/
citadel/event_client.h
+++ b/
citadel/event_client.h
@@
-179,51
+179,52
@@
typedef struct _IOAddHandler {
IO_CallBack EvAttch;
} IOAddHandler;
IO_CallBack EvAttch;
} IOAddHandler;
+
+
+extern int DebugEventLoop;
+extern int DebugCAres;
+
+#define EDBGLOG(LEVEL) if ((LEVEL != LOG_DEBUG) || (DebugEventLoop != 0))
+
#define CCID ((CitContext*)IO->CitContext)->cs_pid
#define EV_syslog(LEVEL, FORMAT, ...) \
#define CCID ((CitContext*)IO->CitContext)->cs_pid
#define EV_syslog(LEVEL, FORMAT, ...) \
- syslog(LEVEL, "IO[%ld]CC[%d]" FORMAT, IO->ID, CCID, __VA_ARGS__)
+
EDBGLOG (LEVEL)
syslog(LEVEL, "IO[%ld]CC[%d]" FORMAT, IO->ID, CCID, __VA_ARGS__)
#define EVM_syslog(LEVEL, FORMAT) \
#define EVM_syslog(LEVEL, FORMAT) \
- syslog(LEVEL, "IO[%ld]CC[%d]" FORMAT, IO->ID, CCID)
+
EDBGLOG (LEVEL)
syslog(LEVEL, "IO[%ld]CC[%d]" FORMAT, IO->ID, CCID)
#define EVNC_syslog(LEVEL, FORMAT, ...) \
#define EVNC_syslog(LEVEL, FORMAT, ...) \
- syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID, __VA_ARGS__)
+
EDBGLOG (LEVEL)
syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID, __VA_ARGS__)
-#define EVNCM_syslog(LEVEL, FORMAT) syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID)
+#define EVNCM_syslog(LEVEL, FORMAT)
EDBGLOG (LEVEL)
syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID)
-#ifdef DEBUG_CARES
+
+#define CDBGLOG() if (DebugCAres != 0)
#define EV_DNS_LOG_START(a) \
#define EV_DNS_LOG_START(a) \
- syslog(LOG_DEBUG, "IO[%ld]CC[%d] + Starting " #a " %p FD %d", IO->ID, CCID, &IO->a, IO->a.fd); \
+
CDBGLOG ()
syslog(LOG_DEBUG, "IO[%ld]CC[%d] + Starting " #a " %p FD %d", IO->ID, CCID, &IO->a, IO->a.fd); \
EV_backtrace(IO);
#define EV_DNS_LOG_STOP(a) \
EV_backtrace(IO);
#define EV_DNS_LOG_STOP(a) \
- syslog(LOG_DEBUG, "IO[%ld]CC[%d] - Stopping " #a " %p FD %d", IO->ID, CCID, &IO->a, IO->a.fd); \
+
CDBGLOG ()
syslog(LOG_DEBUG, "IO[%ld]CC[%d] - Stopping " #a " %p FD %d", IO->ID, CCID, &IO->a, IO->a.fd); \
EV_backtrace(IO);
#define EV_DNS_LOG_INIT(a) \
EV_backtrace(IO);
#define EV_DNS_LOG_INIT(a) \
- syslog(LOG_DEBUG, "IO[%ld]CC[%d] * Init " #a " %p FD %d", IO->ID, CCID, &IO->a, IO->a.fd); \
+
CDBGLOG ()
syslog(LOG_DEBUG, "IO[%ld]CC[%d] * Init " #a " %p FD %d", IO->ID, CCID, &IO->a, IO->a.fd); \
EV_backtrace(IO);
#define EV_DNS_LOGT_START(a) \
EV_backtrace(IO);
#define EV_DNS_LOGT_START(a) \
- syslog(LOG_DEBUG, "IO[%ld]CC[%d] + Starting " #a " %p", IO->ID, CCID, &IO->a); \
+
CDBGLOG ()
syslog(LOG_DEBUG, "IO[%ld]CC[%d] + Starting " #a " %p", IO->ID, CCID, &IO->a); \
EV_backtrace(IO);
#define EV_DNS_LOGT_STOP(a) \
EV_backtrace(IO);
#define EV_DNS_LOGT_STOP(a) \
- syslog(LOG_DEBUG, "IO[%ld]CC[%d] - Stopping " #a " %p", IO->ID, CCID, &IO->a); \
+
CDBGLOG ()
syslog(LOG_DEBUG, "IO[%ld]CC[%d] - Stopping " #a " %p", IO->ID, CCID, &IO->a); \
EV_backtrace(IO);
#define EV_DNS_LOGT_INIT(a) \
EV_backtrace(IO);
#define EV_DNS_LOGT_INIT(a) \
- syslog(LOG_DEBUG, "IO[%ld]CC[%d] * Init " #a " %p", IO->ID, CCID, &IO->a); \
+
CDBGLOG ()
syslog(LOG_DEBUG, "IO[%ld]CC[%d] * Init " #a " %p", IO->ID, CCID, &IO->a); \
EV_backtrace(IO);
EV_backtrace(IO);
-#else
-#define EV_DNS_LOG_START(a)
-#define EV_DNS_LOG_STOP(a)
-#define EV_DNS_LOG_INIT(a)
-#define EV_DNS_LOGT_START(a)
-#define EV_DNS_LOGT_STOP(a)
-#define EV_DNS_LOGT_INIT(a)
-#endif
+
void FreeAsyncIOContents(AsyncIO *IO);
void FreeAsyncIOContents(AsyncIO *IO);
diff --git
a/citadel/modules/c-ares-dns/serv_c-ares-dns.c
b/citadel/modules/c-ares-dns/serv_c-ares-dns.c
index d1b1a027e5f86d2ac33acdad19115058585d4b69..13e156a80879a3ecb17ceb7e8e318d839a59cea9 100644
(file)
--- a/
citadel/modules/c-ares-dns/serv_c-ares-dns.c
+++ b/
citadel/modules/c-ares-dns/serv_c-ares-dns.c
@@
-57,6
+57,7
@@
#include "ctdl_module.h"
#include "event_client.h"
#include "ctdl_module.h"
#include "event_client.h"
+int DebugCAres = 0;
extern struct ev_loop *event_base;
extern struct ev_loop *event_base;
@@
-609,11
+610,16
@@
void SockStateCb(void *data, int sock, int read, int write)
ev_io_stop(event_base, &IO->DNS.send_event);
}
}
ev_io_stop(event_base, &IO->DNS.send_event);
}
}
+void EnableDebugCAres(void)
+{
+ DebugCAres = 1;
+}
CTDL_MODULE_INIT(c_ares_client)
{
if (!threading)
{
CTDL_MODULE_INIT(c_ares_client)
{
if (!threading)
{
+ CtdlRegisterDebugFlagHook(HKEY("cares"), EnableDebugCAres);
int r = ares_library_init(ARES_LIB_INIT_ALL);
if (0 != r) {
int r = ares_library_init(ARES_LIB_INIT_ALL);
if (0 != r) {
diff --git
a/citadel/modules/eventclient/serv_eventclient.c
b/citadel/modules/eventclient/serv_eventclient.c
index ce5d7f0412c12246e8663e6d2025b992cd6992f7..97e217de9dd43c6ca3b9e171a47970b36dacaa5a 100644
(file)
--- a/
citadel/modules/eventclient/serv_eventclient.c
+++ b/
citadel/modules/eventclient/serv_eventclient.c
@@
-60,6
+60,8
@@
#include "serv_curl.h"
ev_loop *event_base;
#include "serv_curl.h"
ev_loop *event_base;
+int DebugEventLoop = 0;
+int DebugCurl = 0;
long EvIDSource = 1;
/*****************************************************************************
long EvIDSource = 1;
/*****************************************************************************
@@
-822,10
+824,22
@@
void ShutDownEventQueues(void)
pthread_mutex_unlock(&EventQueueMutex);
}
pthread_mutex_unlock(&EventQueueMutex);
}
+void DebugEventloopEnable(void)
+{
+ DebugEventLoop = 1;
+}
+
+void DebugCurlEnable(void)
+{
+ DebugCurl = 1;
+}
+
CTDL_MODULE_INIT(event_client)
{
if (!threading)
{
CTDL_MODULE_INIT(event_client)
{
if (!threading)
{
+ CtdlRegisterDebugFlagHook(HKEY("eventloop"), DebugEventloopEnable);
+ CtdlRegisterDebugFlagHook(HKEY("curl"), DebugCurlEnable);
InitEventQueue();
DBInitEventQueue();
CtdlThreadCreate(client_event_thread);
InitEventQueue();
DBInitEventQueue();
CtdlThreadCreate(client_event_thread);