- source documented

This commit is contained in:
Jan Hutter 2005-11-09 16:32:20 +00:00
parent e6fbf1d259
commit 6ae4efda08
2 changed files with 77 additions and 18 deletions

View file

@ -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;
}

View file

@ -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);