aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/utils
diff options
context:
space:
mode:
Diffstat (limited to 'Source/charon/utils')
-rw-r--r--Source/charon/utils/logger.c13
-rw-r--r--Source/charon/utils/logger.h12
-rw-r--r--Source/charon/utils/logger_manager.c46
-rw-r--r--Source/charon/utils/logger_manager.h1
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;