layout.h(3)

NAME
layout.h - Interface for user specific layout format of log4c_logging_event events.

SYNOPSIS

#include <log4c/defs.h>
#include <log4c/logging_event.h>
#include <stdio.h>

  Data Structures

struct log4c_layout_type
log4c layout type class

  Macros

#define log4c_layout_type_define(a_type)

  Typedefs

typedef struct __log4c_layout log4c_layout_t
typedef struct log4c_layout_type log4c_layout_type_t
log4c layout type class

  Functions

const log4c_layout_type_t * log4c_layout_type_get (const char *a_name)
const log4c_layout_type_t * log4c_layout_type_set (const log4c_layout_type_t *a_type)
log4c_layout_t * log4c_layout_get (const char *a_name)
log4c_layout_t * log4c_layout_new (const char *a_name)
void log4c_layout_delete (log4c_layout_t *a_layout)
const char * log4c_layout_get_name (const log4c_layout_t *a_layout)
const log4c_layout_type_t * log4c_layout_get_type (const log4c_layout_t *a_layout)
const log4c_layout_type_t * log4c_layout_set_type (log4c_layout_t *a_layout, const log4c_layout_type_t *a_type)
void * log4c_layout_get_udata (const log4c_layout_t *a_layout)
void * log4c_layout_set_udata (log4c_layout_t *a_layout, void *a_udata)
const char * log4c_layout_format (const log4c_layout_t *a_layout, const log4c_logging_event_t *a_event)
void log4c_layout_print (const log4c_layout_t *a_layout, FILE *a_stream)
void log4c_layout_types_free (void)
void log4c_layout_types_print (FILE *fp)

Detailed Description

Interface for user specific layout format of log4c_logging_event events.

Todo
    the layout interface needs a better configuration system depending on the layout type. The udata field is a just a trick.

Todo
    a pattern layout would be welcomed !!

Macro Definition Documentation

  #define log4c_layout_type_define(a_type)
Helper macro to define static layout types.

Parameters:
    a_type the log4c_layout_type_t object to define

Warning:
    needs GCC support: otherwise this macro does nothing

Deprecated
    This macro, and the static initialialization of layouts in general, is deprecated. Use rather the log4c_layout_type_set() function to initialize your appenders before calling log4c_init()

Typedef Documentation

  typedef struct __log4c_layout log4c_layout_t
log4c layout class

  typedef struct log4c_layout_type log4c_layout_type_t

log4c layout type class Attributes description:

•   name layout type name
•   format

Function Documentation

  void log4c_layout_delete (log4c_layout_t * a_layout)
Destructor for layout.

  const char* log4c_layout_format (const log4c_layout_t * a_layout, const log4c_logging_event_t * a_event)
format a log4c_logging_event events to a string.
Parameters:
    a_layout the log4c_layout_t object
    a_event a logging_event_t object
Returns:
    an appendable string.

  log4c_layout_t* log4c_layout_get (const char * a_name)
Get a pointer to an existing layout.
Parameters:
    a_name the name of the layout to return.
Returns:
    a pointer to an existing layout, or NULL if no layout with the specfied name exists.

References log4c_layout_delete(), log4c_layout_new(), and log4c_layout_print().

  const char* log4c_layout_get_name (const log4c_layout_t * a_layout)

Parameters:
    a_layout the log4c_layout_t object
Returns:
    the layout name

  const log4c_layout_type_t* log4c_layout_get_type (const log4c_layout_t * a_layout)

Parameters:
    a_layout the log4c_layout_t object
Returns:
    a log4c_layout_type_t object

  void* log4c_layout_get_udata (const log4c_layout_t * a_layout)

Parameters:
    a_layout the log4c_layout_t object
Returns:
    the layout user data

  log4c_layout_t* log4c_layout_new (const char * a_name)
Constructor for layout.

  void log4c_layout_print (const log4c_layout_t * a_layout, FILE * a_stream)
prints the layout on a stream
Parameters:
    a_layout the log4c_layout_t object
    a_stream the stream

  const log4c_layout_type_t* log4c_layout_set_type (log4c_layout_t * a_layout, const log4c_layout_type_t * a_type)
sets the layout type
Parameters:
    a_layout the log4c_layout_t object
    a_type the new layout type
Returns:
    the previous layout type

  void* log4c_layout_set_udata (log4c_layout_t * a_layout, void * a_udata)
sets the layout user data
Parameters:
    a_layout the log4c_layout_t object
    a_udata the new layout user data
Returns:
    the previous layout user data

  const log4c_layout_type_t* log4c_layout_type_get (const char * a_name)
Get a pointer to an existing layout type.
Parameters:
    a_name the name of the layout type to return.
Returns:
    a pointer to an existing layout type, or NULL if no layout type with the specified name exists.

  const log4c_layout_type_t* log4c_layout_type_set (const log4c_layout_type_t * a_type)
Use this function to register a layout type with log4c. Once this is done you may refer to this type by name both programatically and in the log4c configuration file.
Parameters:
    a_type a pointer to the new layout type to set.
Returns:
    a pointer to the previous layout type of same name.
Example code fragment:
const log4c_layout_type_t log4c_layout_type_xml = {
   "s13_xml",
   xml_format,
};

log4c_layout_type_set(&log4c_layout_type_xml);

  void log4c_layout_types_free (void)
free all layout types

  void log4c_layout_types_print (FILE * fp)
prints all the current registered layout types on a stream
Parameters:
    fp the stream

Author
Generated automatically by Doxygen for log4c from the source code.