appender.h - Implement this interface for your own strategies for printing log statements.
Contents
Detailed Description
Implement this interface for your own strategies for printing log statements.
Todo
the appender interface needs a better configuration system depending on the layout type. The udata
field is a just a trick.
Function Documentation
intlog4c_appender_append(log4c_appender_t*this,log4c_logging_event_t*a_event)
log in appender specific way.
Parametersa_appender the log4c_appender object
a_event the log4c_logging_event_t object to log.
Bug
is this the right place to open an appender ?
intlog4c_appender_close(log4c_appender_t*a_appender)
closes the appender
Parametersa_appender the log4c_appender_t object
Returns
zero if successful, -1 otherwise
voidlog4c_appender_delete(log4c_appender_t*a_appender)
Destructor for log4c_appender_t.
log4c_appender_t*log4c_appender_get(constchar*a_name)
Get a pointer to an existing appender.
Parametersa_name the name of the appender to return.
Returns
a pointer to an existing appender, or NULL if no appender with the specfied name exists.
constlog4c_layout_t*log4c_appender_get_layout(constlog4c_appender_t*a_appender)Parametersa_appender the log4c_appender_t object
Returns
the appender layout
constchar*log4c_appender_get_name(constlog4c_appender_t*a_appender)Parametersa_appender the log4c_appender_t object
Returns
the appender name
constlog4c_appender_type_t*log4c_appender_get_type(constlog4c_appender_t*a_appender)Parametersa_appender the log4c_appender_t object
Returns
the appender operations
void*log4c_appender_get_udata(constlog4c_appender_t*a_appender)Parametersa_appender the log4c_appender_t object
Returns
the appender user data
log4c_appender_t*log4c_appender_new(constchar*a_name)
Constructor for log4c_appender_t.
intlog4c_appender_open(log4c_appender_t*a_appender)
opens the appender.
Parametersa_appender the log4c_appender_t object
voidlog4c_appender_print(constlog4c_appender_t*a_appender,FILE*a_stream)
prints the appender on a stream
Parametersa_appender the log4c_appender_t object
a_stream the stream
constlog4c_layout_t*log4c_appender_set_layout(log4c_appender_t*a_appender,constlog4c_layout_t*a_layout)
sets the appender layout
Parametersa_appender the log4c_appender_t object
a_layout the new appender layout
Returns
the previous appender layout
constlog4c_appender_type_t*log4c_appender_set_type(log4c_appender_t*a_appender,constlog4c_appender_type_t*a_type)
sets the appender type
Parametersa_appender the log4c_appender_t object
a_type the new appender type
Returns
the previous appender type
void*log4c_appender_set_udata(log4c_appender_t*a_appender,void*a_udata)
sets the appender user data
Parametersa_appender the log4c_appender_t object
a_udata the new appender user data
Returns
the previous appender user data
constlog4c_appender_type_t*log4c_appender_type_get(constchar*a_name)
Get a pointer to an existing appender type.
Parametersa_name the name of the appender type to return.
Returns
a pointer to an existing appender type, or NULL if no appender type with the specified name exists.
constlog4c_appender_type_t*log4c_appender_type_set(constlog4c_appender_type_t*a_type)
Use this function to register an appender type with log4c. Once this is done you may refer to this type
by name both programmatically and in the log4c configuration file.
Parametersa_type a pointer to the new appender type to set.
Returns
a pointer to the previous appender type of same name.
Example code fragment:
const log4c_appender_type_t log4c_appender_type_s13_file = {
"s13_file",
s13_file_open,
s13_file_append,
s13_file_close,
};
log4c_appender_type_set(&log4c_appender_type_s13_file);
voidlog4c_appender_types_free(void)
free all appender types
voidlog4c_appender_types_print(FILE*fp)
prints all the current registered appender types on a stream
Parametersfp the stream
Macro Definition Documentation
#definelog4c_appender_type_define(a_type)
Helper macro to define static appender types.
Parametersa_type the log4c_appender_type_t object to define
Warning
needs GCC support: otherwise this macro does nothing
Deprecated
This macro, and the static initialialization of appenders in general, is deprecated. Use rather the
log4c_appender_type_set() function to initialize your appenders before calling log4c_init()
Name
appender.h - Implement this interface for your own strategies for printing log statements.
Synopsis
#include <log4c/defs.h>
#include <log4c/layout.h>
#include <stdio.h>
DataStructures
struct log4c_appender_type
log4c appender type class
Macros
#define log4c_appender_type_define(a_type)
Typedefs
typedef struct __log4c_appender log4c_appender_t
typedef struct log4c_appender_typelog4c_appender_type_t
log4c appender type class
Functions
const log4c_appender_type_t * log4c_appender_type_get (const char *a_name)
const log4c_appender_type_t * log4c_appender_type_set (const log4c_appender_type_t *a_type)
log4c_appender_t * log4c_appender_get (const char *a_name)
log4c_appender_t * log4c_appender_new (const char *a_name)
void log4c_appender_delete (log4c_appender_t *a_appender)
const char * log4c_appender_get_name (const log4c_appender_t *a_appender)
const log4c_appender_type_t * log4c_appender_get_type (const log4c_appender_t *a_appender)
const log4c_layout_t * log4c_appender_get_layout (const log4c_appender_t *a_appender)
void * log4c_appender_get_udata (const log4c_appender_t *a_appender)
const log4c_appender_type_t * log4c_appender_set_type (log4c_appender_t *a_appender, const
log4c_appender_type_t *a_type)
void * log4c_appender_set_udata (log4c_appender_t *a_appender, void *a_udata)
const log4c_layout_t * log4c_appender_set_layout (log4c_appender_t *a_appender, const log4c_layout_t
*a_layout)
int log4c_appender_open (log4c_appender_t *a_appender)
int log4c_appender_append (log4c_appender_t *a_appender, log4c_logging_event_t *a_event)
int log4c_appender_close (log4c_appender_t *a_appender)
void log4c_appender_print (const log4c_appender_t *a_appender, FILE *a_stream)
void log4c_appender_types_free (void)
void log4c_appender_types_print (FILE *fp)
Typedef Documentation
typedefstruct__log4c_appenderlog4c_appender_t
log4c appender class
typedefstructlog4c_appender_typelog4c_appender_type_t
log4c appender type class Attributes description:
•
name appender type name
•
open
•
append
•
close
