log4c  1.2.1
appender.h
Go to the documentation of this file.
1 /* $Id$
2  *
3  * appender.h
4  *
5  * Copyright 2001-2003, Meiosys (www.meiosys.com). All rights reserved.
6  *
7  * See the COPYING file for the terms of usage and distribution.
8  */
9 
10 #ifndef log4c_appender_h
11 #define log4c_appender_h
12 
23 #include <log4c/defs.h>
24 #include <log4c/layout.h>
25 #include <stdio.h>
26 
27 __LOG4C_BEGIN_DECLS
28 
29 struct __log4c_appender;
30 
34 typedef struct __log4c_appender log4c_appender_t;
35 
46 typedef struct log4c_appender_type {
47  const char* name;
48  int (*open) (log4c_appender_t*);
49  int (*append) (log4c_appender_t*, const log4c_logging_event_t*);
50  int (*close) (log4c_appender_t*);
52 
60 LOG4C_API const log4c_appender_type_t* log4c_appender_type_get(const char* a_name);
61 
85  const log4c_appender_type_t* a_type);
86 
94 LOG4C_API log4c_appender_t* log4c_appender_get(const char* a_name);
95 
99 LOG4C_API log4c_appender_t* log4c_appender_new(const char* a_name);
100 
104 LOG4C_API void log4c_appender_delete(log4c_appender_t* a_appender);
105 
110 LOG4C_API const char* log4c_appender_get_name(const log4c_appender_t* a_appender);
111 
117  const log4c_appender_t* a_appender);
118 
124  const log4c_appender_t* a_appender);
125 
130 LOG4C_API void* log4c_appender_get_udata(const log4c_appender_t* a_appender);
131 
140  log4c_appender_t* a_appender,
141  const log4c_appender_type_t* a_type);
142 
150 LOG4C_API void* log4c_appender_set_udata(log4c_appender_t* a_appender,
151  void* a_udata);
152 
161  log4c_appender_t* a_appender,
162  const log4c_layout_t* a_layout);
163 
169 LOG4C_API int log4c_appender_open(log4c_appender_t* a_appender);
170 
177 LOG4C_API int log4c_appender_append(
178  log4c_appender_t* a_appender,
179  log4c_logging_event_t* a_event);
180 
187 LOG4C_API int log4c_appender_close(log4c_appender_t* a_appender);
188 
195 LOG4C_API void log4c_appender_print(const log4c_appender_t* a_appender,
196  FILE* a_stream);
197 
203 LOG4C_API void log4c_appender_types_print(FILE *fp);
204 
216 #ifdef __GNUC__
217 # define log4c_appender_type_define(a_type) \
218  typedef int log4c_appender_type_define_##a_type __attribute__((deprecated)); \
219  static log4c_appender_type_define_##a_type __unsused_var __attribute__ ((unused));
220 #else
221 # define log4c_appender_type_define(a_type)
222 #endif
223 
227 struct __sd_factory;
228 LOG4C_API struct __sd_factory* log4c_appender_factory;
229 
230 __LOG4C_END_DECLS
231 
232 #endif
LOG4C_API log4c_appender_t * log4c_appender_new(const char *a_name)
Definition: appender.c:119
LOG4C_API void log4c_appender_delete(log4c_appender_t *a_appender)
Definition: appender.c:136
LOG4C_API const char * log4c_appender_get_name(const log4c_appender_t *a_appender)
Definition: appender.c:155
LOG4C_API log4c_appender_t * log4c_appender_get(const char *a_name)
Definition: appender.c:98
LOG4C_API int log4c_appender_append(log4c_appender_t *a_appender, log4c_logging_event_t *a_event)
Definition: appender.c:254
LOG4C_API void log4c_appender_print(const log4c_appender_t *a_appender, FILE *a_stream)
Definition: appender.c:301
LOG4C_API const log4c_appender_type_t * log4c_appender_type_get(const char *a_name)
Definition: appender.c:65
log4c appender type class
Definition: appender.h:46
LOG4C_API int log4c_appender_close(log4c_appender_t *a_appender)
Definition: appender.c:279
LOG4C_API const log4c_layout_t * log4c_appender_get_layout(const log4c_appender_t *a_appender)
Definition: appender.c:168
LOG4C_API const log4c_appender_type_t * log4c_appender_get_type(const log4c_appender_t *a_appender)
Definition: appender.c:161
LOG4C_API void * log4c_appender_set_udata(log4c_appender_t *a_appender, void *a_udata)
Definition: appender.c:210
LOG4C_API void log4c_appender_types_print(FILE *fp)
Definition: appender.c:50
LOG4C_API int log4c_appender_open(log4c_appender_t *a_appender)
Definition: appender.c:223
LOG4C_API const log4c_appender_type_t * log4c_appender_type_set(const log4c_appender_type_t *a_type)
Definition: appender.c:79
struct log4c_appender_type log4c_appender_type_t
log4c appender type class
LOG4C_API const log4c_layout_t * log4c_appender_set_layout(log4c_appender_t *a_appender, const log4c_layout_t *a_layout)
Definition: appender.c:195
struct __log4c_layout log4c_layout_t
Definition: layout.h:36
logging event object
Definition: logging_event.h:49
struct __log4c_appender log4c_appender_t
Definition: appender.h:34
Interface for user specific layout format of log4c_logging_event events.
LOG4C_API const log4c_appender_type_t * log4c_appender_set_type(log4c_appender_t *a_appender, const log4c_appender_type_t *a_type)
Definition: appender.c:180
LOG4C_API void * log4c_appender_get_udata(const log4c_appender_t *a_appender)
Definition: appender.c:174