<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.3.1"/> <title>log4c: appender.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">log4c  <span id="projectnumber">1.2.4</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.3.1 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_6ba53b81c010ccbbf4e80737d395d27b.html">log4c</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">appender.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p>Implement this interface for your own strategies for printing log statements. <a href="#details">More...</a></p> <div class="textblock"><code>#include <log4c/defs.h></code><br/> <code>#include <<a class="el" href="layout_8h_source.html">log4c/layout.h</a>></code><br/> <code>#include <stdio.h></code><br/> </div><div class="textblock"><div class="dynheader"> Include dependency graph for appender.h:</div> <div class="dyncontent"> <div class="center"><img src="appender_8h__incl.png" border="0" usemap="#appender_8h" alt=""/></div> <map name="appender_8h" id="appender_8h"> <area shape="rect" id="node5" href="layout_8h.html" title="Interface for user specific layout format of log4c_logging_event events." alt="" coords="85,80,187,107"/><area shape="rect" id="node8" href="logging__event_8h.html" title="the internal representation of logging events." alt="" coords="62,155,209,181"/><area shape="rect" id="node11" href="buffer_8h.html" title="log4c buffer" alt="" coords="255,229,356,256"/><area shape="rect" id="node16" href="location__info_8h.html" title="The internal representation of caller location information." alt="" coords="89,229,231,256"/></map> </div> </div><div class="textblock"><div class="dynheader"> This graph shows which files directly or indirectly include this file:</div> <div class="dyncontent"> <div class="center"><img src="appender_8h__dep__incl.png" border="0" usemap="#appender_8hdep" alt=""/></div> <map name="appender_8hdep" id="appender_8hdep"> <area shape="rect" id="node3" href="appender__type__mmap_8h.html" title="Log4c mmap(2) appender interface." alt="" coords="5,80,165,107"/><area shape="rect" id="node5" href="appender__type__rollingfile_8h.html" title="Log4c rolling file appender interface." alt="" coords="191,80,367,107"/><area shape="rect" id="node7" href="appender__type__stream_8h.html" title="Log4c stream appender interface." alt="" coords="391,80,556,107"/><area shape="rect" id="node9" href="appender__type__stream2_8h.html" title="Log4c stream2 appender interface." alt="" coords="581,80,752,107"/><area shape="rect" id="node11" href="appender__type__syslog_8h.html" title="Log4c syslog(3) appender interface." alt="" coords="777,80,940,107"/></map> </div> </div> <p><a href="appender_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structlog4c__appender__type.html">log4c_appender_type</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">log4c appender type class <a href="structlog4c__appender__type.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a6f383cf6bf84fb777f8b3d5c7310a2fc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a6f383cf6bf84fb777f8b3d5c7310a2fc">log4c_appender_type_define</a>(a_type)</td></tr> <tr class="separator:a6f383cf6bf84fb777f8b3d5c7310a2fc"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:ab9a6df639c26566a4576233dfcc21b55"><td class="memItemLeft" align="right" valign="top">typedef struct __log4c_appender </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a></td></tr> <tr class="separator:ab9a6df639c26566a4576233dfcc21b55"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3b0ea324b72e8122c20c3b237beb923e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structlog4c__appender__type.html">log4c_appender_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a></td></tr> <tr class="memdesc:a3b0ea324b72e8122c20c3b237beb923e"><td class="mdescLeft"> </td><td class="mdescRight">log4c appender type class <a href="#a3b0ea324b72e8122c20c3b237beb923e">More...</a><br/></td></tr> <tr class="separator:a3b0ea324b72e8122c20c3b237beb923e"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ab98287b756ad57c8407dc64f7eb007b6"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#ab98287b756ad57c8407dc64f7eb007b6">log4c_appender_type_get</a> (const char *a_name)</td></tr> <tr class="separator:ab98287b756ad57c8407dc64f7eb007b6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9d864edd6e33aa7ea2269580603bb0f9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a9d864edd6e33aa7ea2269580603bb0f9">log4c_appender_type_set</a> (const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a> *a_type)</td></tr> <tr class="separator:a9d864edd6e33aa7ea2269580603bb0f9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abade812d9d5721118691993951b70c52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#abade812d9d5721118691993951b70c52">log4c_appender_get</a> (const char *a_name)</td></tr> <tr class="separator:abade812d9d5721118691993951b70c52"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4a4761f8d74f3008c22ee6aff827d4b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a4a4761f8d74f3008c22ee6aff827d4b1">log4c_appender_new</a> (const char *a_name)</td></tr> <tr class="separator:a4a4761f8d74f3008c22ee6aff827d4b1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9055162addbab5ad0d9b44f561bad619"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a9055162addbab5ad0d9b44f561bad619">log4c_appender_delete</a> (<a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender)</td></tr> <tr class="separator:a9055162addbab5ad0d9b44f561bad619"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acc1ea812f5b6b2f399c36ed713d5fbee"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#acc1ea812f5b6b2f399c36ed713d5fbee">log4c_appender_get_name</a> (const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender)</td></tr> <tr class="separator:acc1ea812f5b6b2f399c36ed713d5fbee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afe87e29dd33cf0c038b54b659e78867b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#afe87e29dd33cf0c038b54b659e78867b">log4c_appender_get_type</a> (const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender)</td></tr> <tr class="separator:afe87e29dd33cf0c038b54b659e78867b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab370280916904ffcb3c9d038fbe4804b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="layout_8h.html#ad17352f2c995c28cdf08e4aa2f2c2dfc">log4c_layout_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#ab370280916904ffcb3c9d038fbe4804b">log4c_appender_get_layout</a> (const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender)</td></tr> <tr class="separator:ab370280916904ffcb3c9d038fbe4804b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a26af4bdf6599bf1f7c42262f1ecdd7bf"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a26af4bdf6599bf1f7c42262f1ecdd7bf">log4c_appender_get_udata</a> (const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender)</td></tr> <tr class="separator:a26af4bdf6599bf1f7c42262f1ecdd7bf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5749474749c8b3ec049acb82add2501f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a5749474749c8b3ec049acb82add2501f">log4c_appender_set_type</a> (<a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender, const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a> *a_type)</td></tr> <tr class="separator:a5749474749c8b3ec049acb82add2501f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a424964ad91214c56ae738d158a97ea54"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a424964ad91214c56ae738d158a97ea54">log4c_appender_set_udata</a> (<a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender, void *a_udata)</td></tr> <tr class="separator:a424964ad91214c56ae738d158a97ea54"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5384a59a50462d6a2af97d9db86eabc0"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="layout_8h.html#ad17352f2c995c28cdf08e4aa2f2c2dfc">log4c_layout_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a5384a59a50462d6a2af97d9db86eabc0">log4c_appender_set_layout</a> (<a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender, const <a class="el" href="layout_8h.html#ad17352f2c995c28cdf08e4aa2f2c2dfc">log4c_layout_t</a> *a_layout)</td></tr> <tr class="separator:a5384a59a50462d6a2af97d9db86eabc0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af0879f7e018752845d10494fc8b91db9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#af0879f7e018752845d10494fc8b91db9">log4c_appender_open</a> (<a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender)</td></tr> <tr class="separator:af0879f7e018752845d10494fc8b91db9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad218dc0d6e1d09b18e40016bca6374c6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#ad218dc0d6e1d09b18e40016bca6374c6">log4c_appender_append</a> (<a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender, <a class="el" href="structlog4c__logging__event__t.html">log4c_logging_event_t</a> *a_event)</td></tr> <tr class="separator:ad218dc0d6e1d09b18e40016bca6374c6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3ab91337efe1942f805f997e19bbc1b0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a3ab91337efe1942f805f997e19bbc1b0">log4c_appender_close</a> (<a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender)</td></tr> <tr class="separator:a3ab91337efe1942f805f997e19bbc1b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac5a5f256693494a844dcc4dbb0770d6d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#ac5a5f256693494a844dcc4dbb0770d6d">log4c_appender_print</a> (const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> *a_appender, FILE *a_stream)</td></tr> <tr class="separator:ac5a5f256693494a844dcc4dbb0770d6d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8654cb14ed9ad8aa2836eadd5dfc35a7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#a8654cb14ed9ad8aa2836eadd5dfc35a7">log4c_appender_types_free</a> (void)</td></tr> <tr class="separator:a8654cb14ed9ad8aa2836eadd5dfc35a7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac286df0353414fca02d7a8395e933276"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="appender_8h.html#ac286df0353414fca02d7a8395e933276">log4c_appender_types_print</a> (FILE *fp)</td></tr> <tr class="separator:ac286df0353414fca02d7a8395e933276"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Implement this interface for your own strategies for printing log statements. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>the appender interface needs a better configuration system depending on the layout type. The udata field is a just a trick. </dd></dl> </div><h2 class="groupheader">Macro Definition Documentation</h2> <a class="anchor" id="a6f383cf6bf84fb777f8b3d5c7310a2fc"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define log4c_appender_type_define</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a_type</td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Helper macro to define static appender types.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_type</td><td>the log4c_appender_type_t object to define </td></tr> </table> </dd> </dl> <dl class="section warning"><dt>Warning</dt><dd>needs GCC support: otherwise this macro does nothing </dd></dl> <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>This macro, and the static initialialization of appenders in general, is deprecated. Use rather the <a class="el" href="appender_8h.html#a9d864edd6e33aa7ea2269580603bb0f9">log4c_appender_type_set()</a> function to initialize your appenders before calling <a class="el" href="init_8h.html#a8eadc94aed53ee4b6ec8d5115f62caf0">log4c_init()</a> </dd></dl> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a class="anchor" id="ab9a6df639c26566a4576233dfcc21b55"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct __log4c_appender <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a></td> </tr> </table> </div><div class="memdoc"> <p>log4c appender class </p> </div> </div> <a class="anchor" id="a3b0ea324b72e8122c20c3b237beb923e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structlog4c__appender__type.html">log4c_appender_type</a> <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a></td> </tr> </table> </div><div class="memdoc"> <p>log4c appender type class </p> <p>Attributes description:</p> <ul> <li><code>name</code> appender type name </li> <li><code>open</code> </li> <li><code>append</code> </li> <li><code>close</code> </li> </ul> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="ad218dc0d6e1d09b18e40016bca6374c6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int log4c_appender_append </td> <td>(</td> <td class="paramtype"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>this</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structlog4c__logging__event__t.html">log4c_logging_event_t</a> * </td> <td class="paramname"><em>a_event</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>log in appender specific way.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender object </td></tr> <tr><td class="paramname">a_event</td><td>the <a class="el" href="structlog4c__logging__event__t.html" title="logging event object">log4c_logging_event_t</a> object to log.</td></tr> </table> </dd> </dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000001">Bug:</a></b></dt><dd>is this the right place to open an appender ? </dd></dl> </div> </div> <a class="anchor" id="a3ab91337efe1942f805f997e19bbc1b0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int log4c_appender_close </td> <td>(</td> <td class="paramtype"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>closes the appender</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>zero if successful, -1 otherwise </dd></dl> </div> </div> <a class="anchor" id="a9055162addbab5ad0d9b44f561bad619"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void log4c_appender_delete </td> <td>(</td> <td class="paramtype"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Destructor for log4c_appender_t. </p> </div> </div> <a class="anchor" id="abade812d9d5721118691993951b70c52"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a>* log4c_appender_get </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>a_name</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get a pointer to an existing appender.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_name</td><td>the name of the appender to return. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>a pointer to an existing appender, or NULL if no appender with the specfied name exists. </dd></dl> </div> </div> <a class="anchor" id="ab370280916904ffcb3c9d038fbe4804b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="layout_8h.html#ad17352f2c995c28cdf08e4aa2f2c2dfc">log4c_layout_t</a>* log4c_appender_get_layout </td> <td>(</td> <td class="paramtype">const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the appender layout </dd></dl> </div> </div> <a class="anchor" id="acc1ea812f5b6b2f399c36ed713d5fbee"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* log4c_appender_get_name </td> <td>(</td> <td class="paramtype">const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the appender name </dd></dl> </div> </div> <a class="anchor" id="afe87e29dd33cf0c038b54b659e78867b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a>* log4c_appender_get_type </td> <td>(</td> <td class="paramtype">const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the appender operations </dd></dl> </div> </div> <a class="anchor" id="a26af4bdf6599bf1f7c42262f1ecdd7bf"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* log4c_appender_get_udata </td> <td>(</td> <td class="paramtype">const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the appender user data </dd></dl> </div> </div> <a class="anchor" id="a4a4761f8d74f3008c22ee6aff827d4b1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a>* log4c_appender_new </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>a_name</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Constructor for log4c_appender_t. </p> </div> </div> <a class="anchor" id="af0879f7e018752845d10494fc8b91db9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int log4c_appender_open </td> <td>(</td> <td class="paramtype"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>opens the appender.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ac5a5f256693494a844dcc4dbb0770d6d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void log4c_appender_print </td> <td>(</td> <td class="paramtype">const <a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">FILE * </td> <td class="paramname"><em>a_stream</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>prints the appender on a stream</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> <tr><td class="paramname">a_stream</td><td>the stream </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a5384a59a50462d6a2af97d9db86eabc0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="layout_8h.html#ad17352f2c995c28cdf08e4aa2f2c2dfc">log4c_layout_t</a>* log4c_appender_set_layout </td> <td>(</td> <td class="paramtype"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="layout_8h.html#ad17352f2c995c28cdf08e4aa2f2c2dfc">log4c_layout_t</a> * </td> <td class="paramname"><em>a_layout</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>sets the appender layout</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> <tr><td class="paramname">a_layout</td><td>the new appender layout </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the previous appender layout </dd></dl> </div> </div> <a class="anchor" id="a5749474749c8b3ec049acb82add2501f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a>* log4c_appender_set_type </td> <td>(</td> <td class="paramtype"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a> * </td> <td class="paramname"><em>a_type</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>sets the appender type</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> <tr><td class="paramname">a_type</td><td>the new appender type </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the previous appender type </dd></dl> </div> </div> <a class="anchor" id="a424964ad91214c56ae738d158a97ea54"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* log4c_appender_set_udata </td> <td>(</td> <td class="paramtype"><a class="el" href="appender_8h.html#ab9a6df639c26566a4576233dfcc21b55">log4c_appender_t</a> * </td> <td class="paramname"><em>a_appender</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>a_udata</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>sets the appender user data</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_appender</td><td>the log4c_appender_t object </td></tr> <tr><td class="paramname">a_udata</td><td>the new appender user data </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the previous appender user data </dd></dl> </div> </div> <a class="anchor" id="ab98287b756ad57c8407dc64f7eb007b6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a>* log4c_appender_type_get </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>a_name</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get a pointer to an existing appender type.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_name</td><td>the name of the appender type to return. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>a pointer to an existing appender type, or NULL if no appender type with the specified name exists. </dd></dl> </div> </div> <a class="anchor" id="a9d864edd6e33aa7ea2269580603bb0f9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a>* log4c_appender_type_set </td> <td>(</td> <td class="paramtype">const <a class="el" href="appender_8h.html#a3b0ea324b72e8122c20c3b237beb923e">log4c_appender_type_t</a> * </td> <td class="paramname"><em>a_type</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Use this function to register an appender type with log4c. Once this is done you may refer to this type by name both programmatically and in the log4c configuration file.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a_type</td><td>a pointer to the new appender type to set. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>a pointer to the previous appender type of same name.</dd></dl> <p>Example code fragment: </p> <div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code" href="structlog4c__appender__type.html" title="log4c appender type class">log4c_appender_type_t</a> log4c_appender_type_s13_file = {</div> <div class="line"> <span class="stringliteral">"s13_file"</span>,</div> <div class="line"> s13_file_open,</div> <div class="line"> s13_file_append,</div> <div class="line"> s13_file_close,</div> <div class="line">};</div> <div class="line"> </div> <div class="line"> log4c_appender_type_set(&log4c_appender_type_s13_file);</div> </div><!-- fragment --> </div> </div> <a class="anchor" id="a8654cb14ed9ad8aa2836eadd5dfc35a7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void log4c_appender_types_free </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>free all appender types </p> </div> </div> <a class="anchor" id="ac286df0353414fca02d7a8395e933276"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void log4c_appender_types_print </td> <td>(</td> <td class="paramtype">FILE * </td> <td class="paramname"><em>fp</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>prints all the current registered appender types on a stream</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">fp</td><td>the stream </td></tr> </table> </dd> </dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.3.1 </small></address> </body> </html>