Man Linux: Main Page and Category List

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>

   Data Structures
       struct log4c_appender_type
           log4c appender type class

   Defines
       #define log4c_appender_type_define(a_type)

   Typedefs
       typedef struct __log4c_appender log4c_appender_t

   Functions
       LOG4C_API const log4c_appender_type_t * log4c_appender_type_get (const
           char *a_name)
       LOG4C_API const log4c_appender_type_t * log4c_appender_type_set (const
           log4c_appender_type_t *a_type)
       LOG4C_API log4c_appender_t * log4c_appender_get (const char *a_name)
       LOG4C_API log4c_appender_t * log4c_appender_new (const char *a_name)
       LOG4C_API void log4c_appender_delete (log4c_appender_t *a_appender)
       LOG4C_API const char * log4c_appender_get_name (const log4c_appender_t
           *a_appender)
       LOG4C_API const log4c_appender_type_t * log4c_appender_get_type (const
           log4c_appender_t *a_appender)
       LOG4C_API const log4c_layout_t * log4c_appender_get_layout (const
           log4c_appender_t *a_appender)
       LOG4C_API void * log4c_appender_get_udata (const log4c_appender_t
           *a_appender)
       LOG4C_API const log4c_appender_type_t * log4c_appender_set_type
           (log4c_appender_t *a_appender, const log4c_appender_type_t *a_type)
       LOG4C_API void * log4c_appender_set_udata (log4c_appender_t
           *a_appender, void *a_udata)
       LOG4C_API const log4c_layout_t * log4c_appender_set_layout
           (log4c_appender_t *a_appender, const log4c_layout_t *a_layout)
       LOG4C_API int log4c_appender_open (log4c_appender_t *a_appender)
       LOG4C_API int log4c_appender_append (log4c_appender_t *a_appender,
           log4c_logging_event_t *a_event)
       LOG4C_API int log4c_appender_close (log4c_appender_t *a_appender)
       LOG4C_API void log4c_appender_print (const log4c_appender_t
           *a_appender, FILE *a_stream)
       LOG4C_API void log4c_appender_types_print (FILE *fp)

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.

Define Documentation

   #define log4c_appender_type_define(a_type)
       Helper macro to define static appender types.

       Parameters:
           a_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()

Typedef Documentation

   typedef struct __log4c_appender log4c_appender_t
       log4c appender class

Function Documentation

   LOG4C_API int log4c_appender_append (log4c_appender_t * this,
       log4c_logging_event_t * a_event)
       log in appender specific way.

       Parameters:
           a_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 ?

       References log4c_logging_event_t::evt_msg, and
       log4c_logging_event_t::evt_rendered_msg.

   LOG4C_API int log4c_appender_close (log4c_appender_t * a_appender)
       closes the appender

       Parameters:
           a_appender the log4c_appender_t object

       Returns:
           zero if successful, -1 otherwise

   LOG4C_API void log4c_appender_delete (log4c_appender_t * a_appender)
       Destructor for log4c_appender_t.

   LOG4C_API log4c_appender_t* log4c_appender_get (const char * a_name)
       Get a pointer to an existing appender.

       Parameters:
           a_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.

   LOG4C_API const log4c_layout_t* log4c_appender_get_layout (const
       log4c_appender_t * a_appender)
       Parameters:
           a_appender the log4c_appender_t object

       Returns:
           the appender layout

   LOG4C_API const char* log4c_appender_get_name (const log4c_appender_t *
       a_appender)
       Parameters:
           a_appender the log4c_appender_t object

       Returns:
           the appender name

   LOG4C_API const log4c_appender_type_t* log4c_appender_get_type (const
       log4c_appender_t * a_appender)
       Parameters:
           a_appender the log4c_appender_t object

       Returns:
           the appender operations

   LOG4C_API void* log4c_appender_get_udata (const log4c_appender_t *
       a_appender)
       Parameters:
           a_appender the log4c_appender_t object

       Returns:
           the appender user data

   LOG4C_API log4c_appender_t* log4c_appender_new (const char * a_name)
       Constructor for log4c_appender_t.

   LOG4C_API int log4c_appender_open (log4c_appender_t * a_appender)
       opens the appender.

       Parameters:
           a_appender the log4c_appender_t object

   LOG4C_API void log4c_appender_print (const log4c_appender_t * a_appender,
       FILE * a_stream)
       prints the appender on a stream

       Parameters:
           a_appender the log4c_appender_t object
           a_stream the stream

   LOG4C_API const log4c_layout_t* log4c_appender_set_layout (log4c_appender_t
       * a_appender, const log4c_layout_t * a_layout)
       sets the appender layout

       Parameters:
           a_appender the log4c_appender_t object
           a_layout the new appender layout

       Returns:
           the previous appender layout

   LOG4C_API const log4c_appender_type_t* log4c_appender_set_type
       (log4c_appender_t * a_appender, const log4c_appender_type_t * a_type)
       sets the appender type

       Parameters:
           a_appender the log4c_appender_t object
           a_type the new appender type

       Returns:
           the previous appender type

   LOG4C_API void* log4c_appender_set_udata (log4c_appender_t * a_appender,
       void * a_udata)
       sets the appender user data

       Parameters:
           a_appender the log4c_appender_t object
           a_udata the new appender user data

       Returns:
           the previous appender user data

   LOG4C_API const log4c_appender_type_t* log4c_appender_type_get (const char
       * a_name)
       Get a pointer to an existing appender type.

       Parameters:
           a_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.

   LOG4C_API const log4c_appender_type_t* log4c_appender_type_set (const
       log4c_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.

       Parameters:
           a_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);

       References log4c_appender_type::name.

   LOG4C_API void log4c_appender_types_print (FILE * fp)
       prints all the current registered appender types on a stream

       Parameters:
           fp the stream

Author

       Generated automatically by Doxygen for log4c from the source code.