Main Page | Data Structures | File List | Globals | Related Pages

appender.h

Go to the documentation of this file.
00001 /* $Id: appender.h,v 1.3 2003/09/12 21:06:45 legoater Exp $
00002  *
00003  * appender.h
00004  * 
00005  * Copyright 2001-2003, Meiosys (www.meiosys.com). All rights reserved.
00006  *
00007  * See the COPYING file for the terms of usage and distribution.
00008  */
00009 
00010 #ifndef log4c_appender_h
00011 #define log4c_appender_h
00012 
00023 #include <log4c/defs.h>
00024 #include <log4c/layout.h>
00025 #include <stdio.h>
00026 
00027 __LOG4C_BEGIN_DECLS
00028 
00029 struct __log4c_appender;
00030 
00034 typedef struct __log4c_appender log4c_appender_t;
00035 
00046 typedef struct log4c_appender_type {
00047     const char*   name;
00048     int (*open)   (log4c_appender_t*);
00049     int (*append) (log4c_appender_t*, const log4c_logging_event_t*);
00050     int (*close)  (log4c_appender_t*);
00051 } log4c_appender_type_t;
00052 
00060 extern const log4c_appender_type_t* log4c_appender_type_get(const char* a_name);
00061 
00068 extern const log4c_appender_type_t* log4c_appender_type_set(
00069     const log4c_appender_type_t* a_type);
00070 
00078 extern log4c_appender_t* log4c_appender_get(const char* a_name);
00079 
00083 extern log4c_appender_t* log4c_appender_new(const char* a_name);
00084 
00088 extern void log4c_appender_delete(log4c_appender_t* a_appender);
00089 
00094 extern const char* log4c_appender_get_name(const log4c_appender_t* a_appender);
00095 
00100 extern const log4c_appender_type_t* log4c_appender_get_type(
00101     const log4c_appender_t* a_appender);
00102 
00107 extern const log4c_layout_t* log4c_appender_get_layout(
00108     const log4c_appender_t* a_appender);
00109 
00114 extern void* log4c_appender_get_udata(const log4c_appender_t* a_appender);
00115 
00123 extern const log4c_appender_type_t* log4c_appender_set_type(
00124     log4c_appender_t* a_appender,
00125     const log4c_appender_type_t* a_type);
00126 
00134 extern void* log4c_appender_set_udata(log4c_appender_t* a_appender, 
00135                                       void* a_udata);
00136 
00144 extern const log4c_layout_t* log4c_appender_set_layout(
00145     log4c_appender_t* a_appender,
00146     const log4c_layout_t* a_layout);
00147 
00153 extern int log4c_appender_open(log4c_appender_t* a_appender);
00154 
00161 extern int log4c_appender_append(
00162     log4c_appender_t* a_appender,
00163     log4c_logging_event_t* a_event);
00164 
00170 extern int log4c_appender_close(log4c_appender_t* a_appender);
00171 
00178 extern void log4c_appender_print(const log4c_appender_t* a_appender, 
00179                                  FILE* a_stream);
00180 
00187 #ifdef __GNUC__
00188 #   define log4c_appender_type_define(a_type) \
00189 static void __attribute__ ((constructor)) __log4c_init_appender_type_##a_type(void) \
00190 { log4c_appender_type_set(&a_type); }
00191 #else
00192 #   define log4c_appender_type_define(a_type)
00193 #endif
00194 
00198 struct __sd_factory;
00199 extern struct __sd_factory* log4c_appender_factory;
00200 
00201 __LOG4C_END_DECLS
00202 
00203 #endif

Generated on Sat Dec 11 11:03:57 2004 for log4c by  doxygen 1.3.9.1