diff options
Diffstat (limited to 'Source/charon/utils')
-rw-r--r-- | Source/charon/utils/logger.c | 13 | ||||
-rw-r--r-- | Source/charon/utils/logger.h | 12 | ||||
-rw-r--r-- | Source/charon/utils/logger_manager.c | 46 | ||||
-rw-r--r-- | Source/charon/utils/logger_manager.h | 1 |
4 files changed, 45 insertions, 27 deletions
diff --git a/Source/charon/utils/logger.c b/Source/charon/utils/logger.c index 6f5c51582..d59236cba 100644 --- a/Source/charon/utils/logger.c +++ b/Source/charon/utils/logger.c @@ -26,7 +26,6 @@ #include <stdio.h> #include <time.h> #include <pthread.h> -#include <unistd.h> #include "logger.h" @@ -63,9 +62,9 @@ struct private_logger_t { FILE *output; /** - * Should a pid be included in the log? + * Should a thread_id be included in the log? */ - bool log_pid; + bool log_thread_id; /** * Applies a prefix to string and stores it in buffer. @@ -119,9 +118,9 @@ static void prepend_prefix(private_logger_t *this, logger_level_t loglevel, char log_details = '0'; } - if (this->log_pid) + if (this->log_thread_id) { - snprintf(buffer, MAX_LOG, "[%c%c] [%s] @%d %s", log_type, log_details, this->name, getpid(), string); + snprintf(buffer, MAX_LOG, "[%c%c] [%s] @%u %s", log_type, log_details, this->name, (int)pthread_self(), string); } else { @@ -294,7 +293,7 @@ static void destroy(private_logger_t *this) /* * Described in header. */ -logger_t *logger_create(char *logger_name, logger_level_t log_level, bool log_pid, FILE * output) +logger_t *logger_create(char *logger_name, logger_level_t log_level, bool log_thread_id, FILE * output) { private_logger_t *this = allocator_alloc_thing(private_logger_t); @@ -314,7 +313,7 @@ logger_t *logger_create(char *logger_name, logger_level_t log_level, bool log_pi /* private variables */ this->level = log_level; - this->log_pid = log_pid; + this->log_thread_id = log_thread_id; this->name = allocator_alloc(strlen(logger_name) + 1); strcpy(this->name,logger_name); diff --git a/Source/charon/utils/logger.h b/Source/charon/utils/logger.h index 7f98b9d6c..ee64a6a1a 100644 --- a/Source/charon/utils/logger.h +++ b/Source/charon/utils/logger.h @@ -110,8 +110,8 @@ struct logger_t { * * @param this logger_t object * @param loglevel or'ed set of loglevels - * @param label a labeling name, logged with the bytes - * @param bytes pointer to the bytes to dump + * @param label a labeling name, logged with the bytes + * @param bytes pointer to the bytes to dump * @param len number of bytes to dump */ void (*log_bytes) (logger_t *this, logger_level_t loglevel, char *label, char *bytes, size_t len); @@ -124,7 +124,7 @@ struct logger_t { * * @param this logger_t object * @param loglevel or'ed set of loglevels - * @param label a labeling name, logged with the bytes + * @param label a labeling name, logged with the bytes * @param chunk pointer to a chunk to log */ void (*log_chunk) (logger_t *this, logger_level_t loglevel, char *label, chunk_t *chunk); @@ -158,13 +158,13 @@ struct logger_t { * * @param logger_name name for the logger_t object * @param log_level or'ed set of log_levels to assign to the new logger_t object - * @param log_pid TRUE if thread id should also be logged - * @param output FILE * if log has to go on a file output, NULL for syslog + * @param log_thread_id TRUE if thread id should also be logged + * @param output FILE * if log has to go on a file output, NULL for syslog * @return logger_t object * * @ingroup utils */ -logger_t *logger_create(char *logger_name, logger_level_t log_level, bool log_pid, FILE * output); +logger_t *logger_create(char *logger_name, logger_level_t log_level, bool log_thread_id, FILE * output); #endif /*LOGGER_H_*/ diff --git a/Source/charon/utils/logger_manager.c b/Source/charon/utils/logger_manager.c index 91f83a7f4..f5ebc7d01 100644 --- a/Source/charon/utils/logger_manager.c +++ b/Source/charon/utils/logger_manager.c @@ -43,6 +43,8 @@ mapping_t logger_context_t_mappings[] = { {DAEMON, "DAEMON"}, {CONFIGURATION_MANAGER, "CONFIG"}, {ENCRYPTION_PAYLOAD, "ENCPLD"}, + {PRIME_POOL, "PRIMEP"}, + {MAPPING_END, NULL}, }; /** @@ -137,40 +139,56 @@ static logger_t *create_logger(private_logger_manager_t *this, logger_context_t /* output to stdout, since we are debugging all days */ output = stdout; + + /* defaults */ + log_thread_ids = FALSE; + logger_level = this->public.get_logger_level(&(this->public),context);; switch(context) { case TESTER: - log_thread_ids = FALSE; output = stdout; - logger_level |= FULL; break; - case IKE_SA: - logger_level |= FULL; case IKE_SA_MANAGER: - case WORKER: + log_thread_ids = TRUE; + break; + case IKE_SA: + log_thread_ids = TRUE; + break; case CONFIGURATION_MANAGER: - logger_level |= ALL; + log_thread_ids = TRUE; + break; case MESSAGE: + log_thread_ids = TRUE; + break; case ENCRYPTION_PAYLOAD: - + log_thread_ids = TRUE; + break; case GENERATOR: + log_thread_ids = TRUE; + break; + case PARSER: + log_thread_ids = TRUE; + break; + case WORKER: + log_thread_ids = TRUE; + break; case THREAD_POOL: + break; + case PRIME_POOL: + break; case SCHEDULER: + break; case SENDER: + break; case RECEIVER: + break; case SOCKET: + break; case DAEMON: - logger_level |= CONTROL; - case PARSER: - log_thread_ids = FALSE; - logger_level |= ERROR; break; } - /* reduce to global definiton of loglevel */ - logger_level &= this->public.get_logger_level(&(this->public),context); - /* logger manager is thread save */ pthread_mutex_lock(&(this->mutex)); if (name != NULL) diff --git a/Source/charon/utils/logger_manager.h b/Source/charon/utils/logger_manager.h index 80a9291fc..7658e4282 100644 --- a/Source/charon/utils/logger_manager.h +++ b/Source/charon/utils/logger_manager.h @@ -50,6 +50,7 @@ enum logger_context_t { DAEMON, CONFIGURATION_MANAGER, ENCRYPTION_PAYLOAD, + PRIME_POOL, }; typedef struct logger_manager_t logger_manager_t; |