log4c  1.2.4
Data Structures | Macros | Typedefs | Functions
layout.h File Reference

Interface for user specific layout format of log4c_logging_event events. More...

#include <log4c/defs.h>
#include <log4c/logging_event.h>
#include <stdio.h>
Include dependency graph for layout.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  log4c_layout_type
 log4c layout type class More...
 

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 More...
 

Functions

const log4c_layout_type_tlog4c_layout_type_get (const char *a_name)
 
const log4c_layout_type_tlog4c_layout_type_set (const log4c_layout_type_t *a_type)
 
log4c_layout_tlog4c_layout_get (const char *a_name)
 
log4c_layout_tlog4c_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_tlog4c_layout_get_type (const log4c_layout_t *a_layout)
 
const log4c_layout_type_tlog4c_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_typethe 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

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_layoutthe log4c_layout_t object
a_eventa 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_namethe name of the layout to return.
Returns
a pointer to an existing layout, or NULL if no layout with the specfied name exists.
const char* log4c_layout_get_name ( const log4c_layout_t a_layout)
Parameters
a_layoutthe 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_layoutthe log4c_layout_t object
Returns
a log4c_layout_type_t object
void* log4c_layout_get_udata ( const log4c_layout_t a_layout)
Parameters
a_layoutthe 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_layoutthe log4c_layout_t object
a_streamthe 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_layoutthe log4c_layout_t object
a_typethe 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_layoutthe log4c_layout_t object
a_udatathe 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_namethe 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_typea 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
fpthe stream