diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/charon/logger.c | 30 | ||||
-rw-r--r-- | Source/charon/logger.h | 65 |
2 files changed, 77 insertions, 18 deletions
diff --git a/Source/charon/logger.c b/Source/charon/logger.c index f199b01d1..f1943bb46 100644 --- a/Source/charon/logger.c +++ b/Source/charon/logger.c @@ -55,7 +55,10 @@ struct private_logger_s { }; - +/** + * implements logger_t-function log + * + */ static status_t logg(private_logger_t *this, logger_level_t loglevel, char *format, ...) { if ((this->level & loglevel) == loglevel) @@ -78,19 +81,31 @@ static status_t logg(private_logger_t *this, logger_level_t loglevel, char *form return SUCCESS; } - + +/** + * implements logger_t-function enable_level + * + */ static status_t enable_level(private_logger_t *this, logger_level_t log_level) { this->level |= log_level; return SUCCESS; } - + +/** + * implements logger_t-function disable_level + * + */ static status_t disable_level(private_logger_t *this, logger_level_t log_level) { this->level &= (~log_level); return SUCCESS; } - + +/** + * implements logger_t-function destroy + * + */ static status_t destroy(private_logger_t *this) { if (this->target) @@ -101,7 +116,10 @@ static status_t destroy(private_logger_t *this) return SUCCESS; } - +/* + * Described in Header + * + */ logger_t *logger_create(char *logger_name, char *file, logger_level_t log_level) { private_logger_t *this = allocator_alloc_thing(private_logger_t); @@ -137,5 +155,3 @@ logger_t *logger_create(char *logger_name, char *file, logger_level_t log_level) return (logger_t*)this; } - - diff --git a/Source/charon/logger.h b/Source/charon/logger.h index 5ab0990d2..8656edfff 100644 --- a/Source/charon/logger.h +++ b/Source/charon/logger.h @@ -25,41 +25,84 @@ #include "types.h" - +/** + * Log Levels supported by the logger object + */ typedef enum logger_level_e logger_level_t; + enum logger_level_e { + /** + * basic control messages + */ CONTROL = 1, + /** + * detailed control messages + */ CONTROL_MORE = 2, + /** + * raw data dumps not containing private data + */ RAW = 4, + /** + * private data dumps + */ PRIVATE = 8 }; - - - /** * @brief The logger object */ typedef struct logger_s logger_t; -struct logger_s { - status_t (*log) (logger_t *this, logger_level_t loglevel, char *format, ...); +struct logger_s { + /** + * loggs an entry + * + * function is used like printf + * + * @param this logger_t-object + * @param loglevel loglevel of specific log entry + * @param format printf like format string + * @param ... printf like parameters + * @return SUCCESS + */ + status_t (*log) (logger_t *this, logger_level_t log_level, char *format, ...); + + /** + * enables a loglevel for the current logger_t-object + * + * @param this logger_t-object + * @param log_level loglevel to enable + * @return SUCCESS + */ status_t (*enable_level) (logger_t *this, logger_level_t log_level); - + + /** + * disables a loglevel for the current logger_t-object + * + * @param this logger_t-object + * @param log_level loglevel to disable + * @return SUCCESS + */ status_t (*disable_level) (logger_t *this, logger_level_t log_level); /** - * @brief Destroys a generator object + * @brief destroys a logger_t object * - * @param generator generator object - * @return SUCCESSFUL if succeeded, FAILED otherwise + * @param this logger_t object + * @return SUCCESS if succeeded, FAILED otherwise */ status_t (*destroy) (logger_t *this); }; /** - * Constructor to create a logger + * Constructor to create a logger_t-object * + * @param logger_name Name for the logger_t-object + * @param file FILE pointer to write the log-messages to. If NULL + * syslogger is used. + * @param log_level to assign to the new logger_t-object + * @return logger_t-object or NULL if failed */ logger_t *logger_create(char *logger_name, char *file, logger_level_t log_level); |