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>`

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_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

## log4c_layout_type_define

#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

## log4c_layout_t

typedef struct __log4c_layout log4c_layout_t

log4c layout class

## log4c_layout_type_t

typedef struct log4c_layout_type log4c_layout_type_t

log4c layout type class

Attributes description:

- `name` layout type name
- `format`

## Function Documentation

## log4c_layout_delete()

void log4c_layout_delete | ( | log4c_layout_t * | a_layout | ) |

Destructor for layout.

## log4c_layout_format()

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_get()

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().

## log4c_layout_get_name()

const char* log4c_layout_get_name | ( | const log4c_layout_t * | a_layout | ) |

Parameters

  a_layout | the log4c_layout_t object

Returns
  the layout name

## log4c_layout_get_type()

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

## log4c_layout_get_udata()

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_new()

log4c_layout_t* log4c_layout_new | ( | const char * | a_name | ) |

Constructor for layout.

## log4c_layout_print()

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

## log4c_layout_set_type()

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

## log4c_layout_set_udata()

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

## log4c_layout_type_get()

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.

## log4c_layout_type_set()

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

## log4c_layout_types_free()

void log4c_layout_types_free | ( | void |  | ) |

free all layout types

## log4c_layout_types_print()

void log4c_layout_types_print | ( | FILE * | fp | ) |

prints all the current registered layout types on a stream

Parameters

  fp | the stream