blob: a7afa2338b6ef4cfa30538a454b48d03d30e0b9a [file] [log] [blame]
<!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.11"/>
<title>Apache log4cxx: ODBCAppender Class 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname"><a href="http://logging.apache.org/log4cxx">Apache log4cxx</a>
&#160;<span id="projectnumber">Version 0.11.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classlog4cxx_1_1db_1_1_o_d_b_c_appender.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classlog4cxx_1_1db_1_1_o_d_b_c_appender-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ODBCAppender Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for ODBCAppender:</div>
<div class="dyncontent">
<div class="center">
<img src="classlog4cxx_1_1db_1_1_o_d_b_c_appender.png" usemap="#ODBCAppender_map" alt=""/>
<map id="ODBCAppender_map" name="ODBCAppender_map">
<area href="classlog4cxx_1_1_appender_skeleton.html" title="Implementation base class for all appenders. " alt="AppenderSkeleton" shape="rect" coords="63,168,179,192"/>
<area href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. " alt="Appender" shape="rect" coords="0,112,116,136"/>
<area href="classlog4cxx_1_1helpers_1_1_object_impl.html" title="Implementation class for Object. " alt="ObjectImpl" shape="rect" coords="126,112,242,136"/>
<area href="classlog4cxx_1_1spi_1_1_option_handler.html" title="A string based interface to configure package components. " alt="OptionHandler" shape="rect" coords="0,56,116,80"/>
<area href="classlog4cxx_1_1helpers_1_1_object.html" title="base class for java-like objects. " alt="Object" shape="rect" coords="126,56,242,80"/>
<area href="classlog4cxx_1_1helpers_1_1_object.html" title="base class for java-like objects. " alt="Object" shape="rect" coords="0,0,116,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a579b87b0baa2043e387e34eed706f53b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a579b87b0baa2043e387e34eed706f53b">ODBCAppender</a> ()</td></tr>
<tr class="separator:a579b87b0baa2043e387e34eed706f53b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ca5f1ce3dd0e75424bdcd8db0b58c18"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0ca5f1ce3dd0e75424bdcd8db0b58c18">~ODBCAppender</a> ()</td></tr>
<tr class="separator:a0ca5f1ce3dd0e75424bdcd8db0b58c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee5023c29cca9dc68164b22a01cb7c6e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#aee5023c29cca9dc68164b22a01cb7c6e">setOption</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;option, const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;value)</td></tr>
<tr class="memdesc:aee5023c29cca9dc68164b22a01cb7c6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set options. <a href="#aee5023c29cca9dc68164b22a01cb7c6e">More...</a><br /></td></tr>
<tr class="separator:aee5023c29cca9dc68164b22a01cb7c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1f3ced78d335ec9c2b800d6d5aa3ef8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#af1f3ced78d335ec9c2b800d6d5aa3ef8">activateOptions</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p)</td></tr>
<tr class="memdesc:af1f3ced78d335ec9c2b800d6d5aa3ef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activate the specified options. <a href="#af1f3ced78d335ec9c2b800d6d5aa3ef8">More...</a><br /></td></tr>
<tr class="separator:af1f3ced78d335ec9c2b800d6d5aa3ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e1344f34583432e33fb23c587b8bccb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0e1344f34583432e33fb23c587b8bccb">append</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;event, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;)</td></tr>
<tr class="memdesc:a0e1344f34583432e33fb23c587b8bccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the event to the buffer. <a href="#a0e1344f34583432e33fb23c587b8bccb">More...</a><br /></td></tr>
<tr class="separator:a0e1344f34583432e33fb23c587b8bccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47feccb1873356363e4d0e302bc3822c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a47feccb1873356363e4d0e302bc3822c">close</a> ()</td></tr>
<tr class="memdesc:a47feccb1873356363e4d0e302bc3822c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the appender, flushing the buffer first then closing the default connection if it is open. <a href="#a47feccb1873356363e4d0e302bc3822c">More...</a><br /></td></tr>
<tr class="separator:a47feccb1873356363e4d0e302bc3822c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ec012dcd0096c8b662dd018b181faec"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a9ec012dcd0096c8b662dd018b181faec">flushBuffer</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p)</td></tr>
<tr class="memdesc:a9ec012dcd0096c8b662dd018b181faec"><td class="mdescLeft">&#160;</td><td class="mdescRight">loops through the buffer of LoggingEvents, gets a sql string from <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#acdd1df6edd6df02a3a2fabdf197f2c5e" title="By default getLogStatement sends the event to the required Layout object. ">getLogStatement()</a> and sends it to <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ae950230913c98f717c92ba028abd7fe5" title="Override this to provide an alertnate method of getting connections (such as caching). ">execute()</a>. <a href="#a9ec012dcd0096c8b662dd018b181faec">More...</a><br /></td></tr>
<tr class="separator:a9ec012dcd0096c8b662dd018b181faec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4312e727a9ea814779d2c9950dc3c73e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a4312e727a9ea814779d2c9950dc3c73e">requiresLayout</a> () const </td></tr>
<tr class="memdesc:a4312e727a9ea814779d2c9950dc3c73e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html">ODBCAppender</a> requires a layout. <a href="#a4312e727a9ea814779d2c9950dc3c73e">More...</a><br /></td></tr>
<tr class="separator:a4312e727a9ea814779d2c9950dc3c73e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a050215bb14548cbf0ca36aa7a426f0c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a050215bb14548cbf0ca36aa7a426f0c0">setSql</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;s)</td></tr>
<tr class="memdesc:a050215bb14548cbf0ca36aa7a426f0c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set pre-formated statement eg: insert into LogTable (msg) values ("%m") <a href="#a050215bb14548cbf0ca36aa7a426f0c0">More...</a><br /></td></tr>
<tr class="separator:a050215bb14548cbf0ca36aa7a426f0c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d4781aaddda08b472b4e6bc9560de21"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a7d4781aaddda08b472b4e6bc9560de21">getSql</a> () const </td></tr>
<tr class="memdesc:a7d4781aaddda08b472b4e6bc9560de21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pre-formated statement eg: insert into LogTable (msg) values ("%m") <a href="#a7d4781aaddda08b472b4e6bc9560de21">More...</a><br /></td></tr>
<tr class="separator:a7d4781aaddda08b472b4e6bc9560de21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fb78037faae88af122f46cfc5935c4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a7fb78037faae88af122f46cfc5935c4f">setUser</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;user)</td></tr>
<tr class="separator:a7fb78037faae88af122f46cfc5935c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85c5ccc737e7910aa6198c83614f45a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a85c5ccc737e7910aa6198c83614f45a6">setURL</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;url)</td></tr>
<tr class="separator:a85c5ccc737e7910aa6198c83614f45a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66975d531aaca092a89777216fcbfdff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a66975d531aaca092a89777216fcbfdff">setPassword</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;password)</td></tr>
<tr class="separator:a66975d531aaca092a89777216fcbfdff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b1f387829104ee2f7d390b61a66f481"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a1b1f387829104ee2f7d390b61a66f481">setBufferSize</a> (size_t newBufferSize)</td></tr>
<tr class="separator:a1b1f387829104ee2f7d390b61a66f481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9c0d0eb7b1ee0a9d515f599cedc6a20"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ae9c0d0eb7b1ee0a9d515f599cedc6a20">getUser</a> () const </td></tr>
<tr class="separator:ae9c0d0eb7b1ee0a9d515f599cedc6a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06eb442fec96b0de4d76bbe6cc1557ff"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a06eb442fec96b0de4d76bbe6cc1557ff">getURL</a> () const </td></tr>
<tr class="separator:a06eb442fec96b0de4d76bbe6cc1557ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af15302fc282dc4e7bbd73b861016357e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#af15302fc282dc4e7bbd73b861016357e">getPassword</a> () const </td></tr>
<tr class="separator:af15302fc282dc4e7bbd73b861016357e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adec14dcb306a8c0f1811f7427248429a"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#adec14dcb306a8c0f1811f7427248429a">getBufferSize</a> () const </td></tr>
<tr class="separator:adec14dcb306a8c0f1811f7427248429a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1_appender_skeleton"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1_appender_skeleton')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html">AppenderSkeleton</a></td></tr>
<tr class="memitem:a634ba3ed7cb419659613107766cd826a inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a634ba3ed7cb419659613107766cd826a">AppenderSkeleton</a> ()</td></tr>
<tr class="separator:a634ba3ed7cb419659613107766cd826a inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a600b7815b22ec8cec8a9709cb78a42aa inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a600b7815b22ec8cec8a9709cb78a42aa">AppenderSkeleton</a> (const <a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af1f4e6a2229d95a18324c4e7fa71be65">layout</a>)</td></tr>
<tr class="separator:a600b7815b22ec8cec8a9709cb78a42aa inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0198815940c2715c84b0e04828cf8dfa inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a0198815940c2715c84b0e04828cf8dfa">addRef</a> () const </td></tr>
<tr class="separator:a0198815940c2715c84b0e04828cf8dfa inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c31efee1904916b999395fa4d46a24 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a55c31efee1904916b999395fa4d46a24">releaseRef</a> () const </td></tr>
<tr class="separator:a55c31efee1904916b999395fa4d46a24 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32d626626eee0bc4ade146973f6abb1c inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a32d626626eee0bc4ade146973f6abb1c">finalize</a> ()</td></tr>
<tr class="memdesc:a32d626626eee0bc4ade146973f6abb1c inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize this appender by calling the derived class' <code>close</code> method. <a href="#a32d626626eee0bc4ade146973f6abb1c">More...</a><br /></td></tr>
<tr class="separator:a32d626626eee0bc4ade146973f6abb1c inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a4525ba6d2efe017934bbd867186ec3 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a8a4525ba6d2efe017934bbd867186ec3">addFilter</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> &amp;newFilter)</td></tr>
<tr class="memdesc:a8a4525ba6d2efe017934bbd867186ec3 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a filter to end of the filter list. <a href="#a8a4525ba6d2efe017934bbd867186ec3">More...</a><br /></td></tr>
<tr class="separator:a8a4525ba6d2efe017934bbd867186ec3 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13013b8fd73be124730ec9f299c234d inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af13013b8fd73be124730ec9f299c234d">clearFilters</a> ()</td></tr>
<tr class="memdesc:af13013b8fd73be124730ec9f299c234d inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the filters chain. <a href="#af13013b8fd73be124730ec9f299c234d">More...</a><br /></td></tr>
<tr class="separator:af13013b8fd73be124730ec9f299c234d inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68195e289d2c9cb19bd5751e59d6d892 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a68195e289d2c9cb19bd5751e59d6d892">getErrorHandler</a> () const </td></tr>
<tr class="memdesc:a68195e289d2c9cb19bd5751e59d6d892 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the currently set <a class="el" href="classlog4cxx_1_1spi_1_1_error_handler.html" title="Appenders may delegate their error handling to ErrorHandlers. ">spi::ErrorHandler</a> for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#a68195e289d2c9cb19bd5751e59d6d892">More...</a><br /></td></tr>
<tr class="separator:a68195e289d2c9cb19bd5751e59d6d892 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a459cdb3654725c5dbc68ac4e4a8b980e inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a459cdb3654725c5dbc68ac4e4a8b980e">getFilter</a> () const </td></tr>
<tr class="memdesc:a459cdb3654725c5dbc68ac4e4a8b980e inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the head Filter. <a href="#a459cdb3654725c5dbc68ac4e4a8b980e">More...</a><br /></td></tr>
<tr class="separator:a459cdb3654725c5dbc68ac4e4a8b980e inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65d9c0a259578f6bb448f722bf9b13b9 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a65d9c0a259578f6bb448f722bf9b13b9">getFirstFilter</a> () const </td></tr>
<tr class="memdesc:a65d9c0a259578f6bb448f722bf9b13b9 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the first filter in the filter chain for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#a65d9c0a259578f6bb448f722bf9b13b9">More...</a><br /></td></tr>
<tr class="separator:a65d9c0a259578f6bb448f722bf9b13b9 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af54e877f133079a04e7c210c0d3ad5dc inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af54e877f133079a04e7c210c0d3ad5dc">getLayout</a> () const </td></tr>
<tr class="memdesc:af54e877f133079a04e7c210c0d3ad5dc inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the layout of this appender. <a href="#af54e877f133079a04e7c210c0d3ad5dc">More...</a><br /></td></tr>
<tr class="separator:af54e877f133079a04e7c210c0d3ad5dc inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac22a8d65fdc07f5b0e52c935b0ee055f inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#ac22a8d65fdc07f5b0e52c935b0ee055f">getName</a> () const </td></tr>
<tr class="memdesc:ac22a8d65fdc07f5b0e52c935b0ee055f inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#ac22a8d65fdc07f5b0e52c935b0ee055f">More...</a><br /></td></tr>
<tr class="separator:ac22a8d65fdc07f5b0e52c935b0ee055f inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bc4b2a92a56c9b1a1ea3a271ae1e330 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx.html#a41e2277a4c60af1f49b282d29018e201">LevelPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a0bc4b2a92a56c9b1a1ea3a271ae1e330">getThreshold</a> () const </td></tr>
<tr class="memdesc:a0bc4b2a92a56c9b1a1ea3a271ae1e330 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns this appenders threshold level. <a href="#a0bc4b2a92a56c9b1a1ea3a271ae1e330">More...</a><br /></td></tr>
<tr class="separator:a0bc4b2a92a56c9b1a1ea3a271ae1e330 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40984cbecea40b828eba6271a14c2b4a inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a40984cbecea40b828eba6271a14c2b4a">isAsSevereAsThreshold</a> (const <a class="el" href="namespacelog4cxx.html#a41e2277a4c60af1f49b282d29018e201">LevelPtr</a> &amp;level) const </td></tr>
<tr class="memdesc:a40984cbecea40b828eba6271a14c2b4a inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether the message level is below the appender's threshold. <a href="#a40984cbecea40b828eba6271a14c2b4a">More...</a><br /></td></tr>
<tr class="separator:a40984cbecea40b828eba6271a14c2b4a inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac41fcbcaaf2249b60ad3c63301f37888 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#ac41fcbcaaf2249b60ad3c63301f37888">doAppend</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;event, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a6c72571775abf91a74fade4e2c2b9af8">pool</a>)</td></tr>
<tr class="memdesc:ac41fcbcaaf2249b60ad3c63301f37888 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a4c08a91d859f636117f07463bb53fe41" title="Subclasses of AppenderSkeleton should implement this method to perform actual logging. ">AppenderSkeleton::append</a> method. <a href="#ac41fcbcaaf2249b60ad3c63301f37888">More...</a><br /></td></tr>
<tr class="separator:ac41fcbcaaf2249b60ad3c63301f37888 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa040b30f61aa49ee862dba7d32e3c537 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#aa040b30f61aa49ee862dba7d32e3c537">setErrorHandler</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a> &amp;eh)</td></tr>
<tr class="memdesc:aa040b30f61aa49ee862dba7d32e3c537 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the <a class="el" href="classlog4cxx_1_1spi_1_1_error_handler.html">ErrorHandler</a> for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#aa040b30f61aa49ee862dba7d32e3c537">More...</a><br /></td></tr>
<tr class="separator:aa040b30f61aa49ee862dba7d32e3c537 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a115922e0a4ce63e2145c8861aac07c7f inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a115922e0a4ce63e2145c8861aac07c7f">setLayout</a> (const <a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> &amp;layout1)</td></tr>
<tr class="memdesc:a115922e0a4ce63e2145c8861aac07c7f inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the layout for this appender. <a href="#a115922e0a4ce63e2145c8861aac07c7f">More...</a><br /></td></tr>
<tr class="separator:a115922e0a4ce63e2145c8861aac07c7f inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87e335b8d195a30dbdfe18d5da24b047 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a87e335b8d195a30dbdfe18d5da24b047">setName</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;name1)</td></tr>
<tr class="memdesc:a87e335b8d195a30dbdfe18d5da24b047 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the name of this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#a87e335b8d195a30dbdfe18d5da24b047">More...</a><br /></td></tr>
<tr class="separator:a87e335b8d195a30dbdfe18d5da24b047 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09e9d86bbb2b7b2f94b3f7e74d3557a4 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a09e9d86bbb2b7b2f94b3f7e74d3557a4">setThreshold</a> (const <a class="el" href="namespacelog4cxx.html#a41e2277a4c60af1f49b282d29018e201">LevelPtr</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a084d52617254f80c575bc96187ff4474">threshold</a>)</td></tr>
<tr class="memdesc:a09e9d86bbb2b7b2f94b3f7e74d3557a4 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the threshold level. <a href="#a09e9d86bbb2b7b2f94b3f7e74d3557a4">More...</a><br /></td></tr>
<tr class="separator:a09e9d86bbb2b7b2f94b3f7e74d3557a4 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1_appender"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1_appender')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td></tr>
<tr class="memitem:a15a14100e46e406766b1c92c670948e1 inherit pub_methods_classlog4cxx_1_1_appender"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender.html#a15a14100e46e406766b1c92c670948e1">~Appender</a> ()</td></tr>
<tr class="separator:a15a14100e46e406766b1c92c670948e1 inherit pub_methods_classlog4cxx_1_1_appender"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1spi_1_1_option_handler')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html">OptionHandler</a></td></tr>
<tr class="memitem:ad773ac49843844af53fe553912ed63e5 inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#ad773ac49843844af53fe553912ed63e5">~OptionHandler</a> ()</td></tr>
<tr class="separator:ad773ac49843844af53fe553912ed63e5 inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1helpers_1_1_object"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1helpers_1_1_object')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td></tr>
<tr class="memitem:ae7b62e37794f297c0cede40ed0e84fcd inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classlog4cxx_1_1helpers_1_1_class.html">helpers::Class</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#ae7b62e37794f297c0cede40ed0e84fcd">getClass</a> () const </td></tr>
<tr class="separator:ae7b62e37794f297c0cede40ed0e84fcd inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5cc4f9ba1ea5c2f25bc4b1f0dac5dc5 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#ab5cc4f9ba1ea5c2f25bc4b1f0dac5dc5">~Object</a> ()</td></tr>
<tr class="separator:ab5cc4f9ba1ea5c2f25bc4b1f0dac5dc5 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3604a5fb08f7048d41b51a3943740b96 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a3604a5fb08f7048d41b51a3943740b96">instanceof</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_class.html">Class</a> &amp;clazz) const =0</td></tr>
<tr class="separator:a3604a5fb08f7048d41b51a3943740b96 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a7744a4efdb699356cef215613903c3 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a5a7744a4efdb699356cef215613903c3">cast</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_class.html">Class</a> &amp;clazz) const =0</td></tr>
<tr class="separator:a5a7744a4efdb699356cef215613903c3 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1helpers_1_1_object_impl')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html">ObjectImpl</a></td></tr>
<tr class="memitem:a5e6e9fc30dc1f098fee72d516ea0bad0 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#a5e6e9fc30dc1f098fee72d516ea0bad0">ObjectImpl</a> ()</td></tr>
<tr class="separator:a5e6e9fc30dc1f098fee72d516ea0bad0 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb974728bb3cb991285140c1aa57eed7 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#abb974728bb3cb991285140c1aa57eed7">~ObjectImpl</a> ()</td></tr>
<tr class="separator:abb974728bb3cb991285140c1aa57eed7 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0198815940c2715c84b0e04828cf8dfa inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#a0198815940c2715c84b0e04828cf8dfa">addRef</a> () const </td></tr>
<tr class="separator:a0198815940c2715c84b0e04828cf8dfa inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c31efee1904916b999395fa4d46a24 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#a55c31efee1904916b999395fa4d46a24">releaseRef</a> () const </td></tr>
<tr class="separator:a55c31efee1904916b999395fa4d46a24 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a0dd7c88bd1ee3273c903054961989748"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0dd7c88bd1ee3273c903054961989748">SQLHDBC</a></td></tr>
<tr class="separator:a0dd7c88bd1ee3273c903054961989748"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7380bf52dd05dd52648631049e1724d"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ad7380bf52dd05dd52648631049e1724d">SQLHENV</a></td></tr>
<tr class="separator:ad7380bf52dd05dd52648631049e1724d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2d83a8e49404908492a8816ab5c9c56"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ad2d83a8e49404908492a8816ab5c9c56">SQLHANDLE</a></td></tr>
<tr class="separator:ad2d83a8e49404908492a8816ab5c9c56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10ab8679a65c8f8832f34a02011b1c17"><td class="memItemLeft" align="right" valign="top">typedef short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a10ab8679a65c8f8832f34a02011b1c17">SQLSMALLINT</a></td></tr>
<tr class="separator:a10ab8679a65c8f8832f34a02011b1c17"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:acdd1df6edd6df02a3a2fabdf197f2c5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#acdd1df6edd6df02a3a2fabdf197f2c5e">getLogStatement</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;event, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">helpers::Pool</a> &amp;p) const </td></tr>
<tr class="memdesc:acdd1df6edd6df02a3a2fabdf197f2c5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">By default getLogStatement sends the event to the required <a class="el" href="classlog4cxx_1_1_layout.html" title="Extend this abstract class to create your own log layout format. ">Layout</a> object. <a href="#acdd1df6edd6df02a3a2fabdf197f2c5e">More...</a><br /></td></tr>
<tr class="separator:acdd1df6edd6df02a3a2fabdf197f2c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae950230913c98f717c92ba028abd7fe5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ae950230913c98f717c92ba028abd7fe5">execute</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;sql, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p)</td></tr>
<tr class="memdesc:ae950230913c98f717c92ba028abd7fe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override this to provide an alertnate method of getting connections (such as caching). <a href="#ae950230913c98f717c92ba028abd7fe5">More...</a><br /></td></tr>
<tr class="separator:ae950230913c98f717c92ba028abd7fe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7071a33ce15b2c3a16ff09690ca9937e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a7071a33ce15b2c3a16ff09690ca9937e">closeConnection</a> (<a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0dd7c88bd1ee3273c903054961989748">SQLHDBC</a> con)</td></tr>
<tr class="memdesc:a7071a33ce15b2c3a16ff09690ca9937e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override this to return the connection to a pool, or to clean up the resource. <a href="#a7071a33ce15b2c3a16ff09690ca9937e">More...</a><br /></td></tr>
<tr class="separator:a7071a33ce15b2c3a16ff09690ca9937e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08b7f6ae5633ed288db9806dac6b3482"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0dd7c88bd1ee3273c903054961989748">SQLHDBC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a08b7f6ae5633ed288db9806dac6b3482">getConnection</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p)</td></tr>
<tr class="memdesc:a08b7f6ae5633ed288db9806dac6b3482"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override this to link with your connection pooling system. <a href="#a08b7f6ae5633ed288db9806dac6b3482">More...</a><br /></td></tr>
<tr class="separator:a08b7f6ae5633ed288db9806dac6b3482"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classlog4cxx_1_1_appender_skeleton"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classlog4cxx_1_1_appender_skeleton')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html">AppenderSkeleton</a></td></tr>
<tr class="memitem:a8031b9821dad65f80946e4edfae04459 inherit pro_methods_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a8031b9821dad65f80946e4edfae04459">doAppendImpl</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;event, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a6c72571775abf91a74fade4e2c2b9af8">pool</a>)</td></tr>
<tr class="separator:a8031b9821dad65f80946e4edfae04459 inherit pro_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a4ec73418fef52ea00dc3b94f682cf525"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a4ec73418fef52ea00dc3b94f682cf525">databaseURL</a></td></tr>
<tr class="memdesc:a4ec73418fef52ea00dc3b94f682cf525"><td class="mdescLeft">&#160;</td><td class="mdescRight">URL of the DB for default connection handling. <a href="#a4ec73418fef52ea00dc3b94f682cf525">More...</a><br /></td></tr>
<tr class="separator:a4ec73418fef52ea00dc3b94f682cf525"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb1c412066a897d15480261a944e7b5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#abb1c412066a897d15480261a944e7b5c">databaseUser</a></td></tr>
<tr class="memdesc:abb1c412066a897d15480261a944e7b5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">User to connect as for default connection handling. <a href="#abb1c412066a897d15480261a944e7b5c">More...</a><br /></td></tr>
<tr class="separator:abb1c412066a897d15480261a944e7b5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6942ecd25e0671fa6e7346d84888eab6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a6942ecd25e0671fa6e7346d84888eab6">databasePassword</a></td></tr>
<tr class="memdesc:a6942ecd25e0671fa6e7346d84888eab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">User to use for default connection handling. <a href="#a6942ecd25e0671fa6e7346d84888eab6">More...</a><br /></td></tr>
<tr class="separator:a6942ecd25e0671fa6e7346d84888eab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68ed11f0d40d8fff0cc13820a419d1f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0dd7c88bd1ee3273c903054961989748">SQLHDBC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a68ed11f0d40d8fff0cc13820a419d1f8">connection</a></td></tr>
<tr class="memdesc:a68ed11f0d40d8fff0cc13820a419d1f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connection used by default. <a href="#a68ed11f0d40d8fff0cc13820a419d1f8">More...</a><br /></td></tr>
<tr class="separator:a68ed11f0d40d8fff0cc13820a419d1f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e986b27a58688aa57b320d62b6c3a29"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ad7380bf52dd05dd52648631049e1724d">SQLHENV</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a9e986b27a58688aa57b320d62b6c3a29">env</a></td></tr>
<tr class="separator:a9e986b27a58688aa57b320d62b6c3a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4a300223285823bf05b6cb7bc14e5c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#aa4a300223285823bf05b6cb7bc14e5c0">sqlStatement</a></td></tr>
<tr class="memdesc:aa4a300223285823bf05b6cb7bc14e5c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the string given to the pattern layout for conversion into a SQL statement, eg: insert into LogTable (Thread, <a class="el" href="classlog4cxx_1_1_file.html" title="An abstract representation of file and directory path names. ">File</a>, Message) values ("%t", "%F", "%m") <a href="#aa4a300223285823bf05b6cb7bc14e5c0">More...</a><br /></td></tr>
<tr class="separator:aa4a300223285823bf05b6cb7bc14e5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7be887a2ca0a258cf6b368d32fd87487"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a7be887a2ca0a258cf6b368d32fd87487">bufferSize</a></td></tr>
<tr class="memdesc:a7be887a2ca0a258cf6b368d32fd87487"><td class="mdescLeft">&#160;</td><td class="mdescRight">size of LoggingEvent buffer before writing to the database. <a href="#a7be887a2ca0a258cf6b368d32fd87487">More...</a><br /></td></tr>
<tr class="separator:a7be887a2ca0a258cf6b368d32fd87487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2156ad21b9f11eb4e62a4969dd3ac07a"><td class="memItemLeft" align="right" valign="top">std::list&lt; <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a2156ad21b9f11eb4e62a4969dd3ac07a">buffer</a></td></tr>
<tr class="memdesc:a2156ad21b9f11eb4e62a4969dd3ac07a"><td class="mdescLeft">&#160;</td><td class="mdescRight">ArrayList holding the buffer of Logging Events. <a href="#a2156ad21b9f11eb4e62a4969dd3ac07a">More...</a><br /></td></tr>
<tr class="separator:a2156ad21b9f11eb4e62a4969dd3ac07a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classlog4cxx_1_1_appender_skeleton"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classlog4cxx_1_1_appender_skeleton')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html">AppenderSkeleton</a></td></tr>
<tr class="memitem:af1f4e6a2229d95a18324c4e7fa71be65 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af1f4e6a2229d95a18324c4e7fa71be65">layout</a></td></tr>
<tr class="memdesc:af1f4e6a2229d95a18324c4e7fa71be65 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">The layout variable does not need to be set if the appender implementation has its own layout. <a href="#af1f4e6a2229d95a18324c4e7fa71be65">More...</a><br /></td></tr>
<tr class="separator:af1f4e6a2229d95a18324c4e7fa71be65 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9de136310b76f5d0aa8b40848216b167 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a9de136310b76f5d0aa8b40848216b167">name</a></td></tr>
<tr class="memdesc:a9de136310b76f5d0aa8b40848216b167 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appenders are named. <a href="#a9de136310b76f5d0aa8b40848216b167">More...</a><br /></td></tr>
<tr class="separator:a9de136310b76f5d0aa8b40848216b167 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a084d52617254f80c575bc96187ff4474 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#a41e2277a4c60af1f49b282d29018e201">LevelPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a084d52617254f80c575bc96187ff4474">threshold</a></td></tr>
<tr class="memdesc:a084d52617254f80c575bc96187ff4474 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">There is no level threshold filtering by default. <a href="#a084d52617254f80c575bc96187ff4474">More...</a><br /></td></tr>
<tr class="separator:a084d52617254f80c575bc96187ff4474 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6afac50bae7fd8b7c2b7e7984918298 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#ae6afac50bae7fd8b7c2b7e7984918298">errorHandler</a></td></tr>
<tr class="memdesc:ae6afac50bae7fd8b7c2b7e7984918298 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">It is assumed and enforced that errorHandler is never null. <a href="#ae6afac50bae7fd8b7c2b7e7984918298">More...</a><br /></td></tr>
<tr class="separator:ae6afac50bae7fd8b7c2b7e7984918298 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d297ecc2f5fbfa373d9ad7a26ad51a7 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a6d297ecc2f5fbfa373d9ad7a26ad51a7">headFilter</a></td></tr>
<tr class="memdesc:a6d297ecc2f5fbfa373d9ad7a26ad51a7 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">The first filter in the filter chain. <a href="#a6d297ecc2f5fbfa373d9ad7a26ad51a7">More...</a><br /></td></tr>
<tr class="separator:a6d297ecc2f5fbfa373d9ad7a26ad51a7 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b816fdac60684ae1095e81d2bfdaa46 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a0b816fdac60684ae1095e81d2bfdaa46">tailFilter</a></td></tr>
<tr class="memdesc:a0b816fdac60684ae1095e81d2bfdaa46 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">The last filter in the filter chain. <a href="#a0b816fdac60684ae1095e81d2bfdaa46">More...</a><br /></td></tr>
<tr class="separator:a0b816fdac60684ae1095e81d2bfdaa46 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a624c24d3973e790d23212b57f13e894b inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a624c24d3973e790d23212b57f13e894b">closed</a></td></tr>
<tr class="memdesc:a624c24d3973e790d23212b57f13e894b inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is this appender closed? <a href="#a624c24d3973e790d23212b57f13e894b">More...</a><br /></td></tr>
<tr class="separator:a624c24d3973e790d23212b57f13e894b inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c72571775abf91a74fade4e2c2b9af8 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a6c72571775abf91a74fade4e2c2b9af8">pool</a></td></tr>
<tr class="separator:a6c72571775abf91a74fade4e2c2b9af8 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a71e3cc364aa10f28b8eee5eb1f9596 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memItemLeft" align="right" valign="top"><a class="el" href="mutex_8h.html#a7c919419f890fd2b6d5136f7b7bac446">SHARED_MUTEX</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a2a71e3cc364aa10f28b8eee5eb1f9596">mutex</a></td></tr>
<tr class="separator:a2a71e3cc364aa10f28b8eee5eb1f9596 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classlog4cxx_1_1helpers_1_1_object_impl"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classlog4cxx_1_1helpers_1_1_object_impl')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html">ObjectImpl</a></td></tr>
<tr class="memitem:a88f2ae00c84f3f309965e6588ed158d4 inherit pro_attribs_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">unsigned int volatile&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#a88f2ae00c84f3f309965e6588ed158d4">ref</a></td></tr>
<tr class="separator:a88f2ae00c84f3f309965e6588ed158d4 inherit pro_attribs_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classlog4cxx_1_1helpers_1_1_object')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td></tr>
<tr class="memitem:a0bdbda4effe8938c1aca6d4397e5a39d inherit pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classlog4cxx_1_1helpers_1_1_class.html">helpers::Class</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a0bdbda4effe8938c1aca6d4397e5a39d">getStaticClass</a> ()</td></tr>
<tr class="separator:a0bdbda4effe8938c1aca6d4397e5a39d inherit pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50ec9288d0b7e3140dee8e24ee74a212 inherit pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a50ec9288d0b7e3140dee8e24ee74a212">registerClass</a> ()</td></tr>
<tr class="separator:a50ec9288d0b7e3140dee8e24ee74a212 inherit pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><b>WARNING: This version of <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html">ODBCAppender</a> is very likely to be completely replaced in the future. Moreoever, it does not log exceptions.</b> </p>
<p>The <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html">ODBCAppender</a> provides for sending log events to a database.</p>
<p>Each append call adds to an <code>ArrayList</code> buffer. When the buffer is filled each log event is placed in a sql statement (configurable) and executed.</p>
<p><b>BufferSize</b>, <b>db URL</b>, <b>User</b>, &amp; <b>Password</b> are configurable options in the standard log4j ways.</p>
<p>The <code>setSql(String sql)</code> sets the SQL statement to be used for logging &ndash; this statement is sent to a <code><a class="el" href="classlog4cxx_1_1_pattern_layout.html" title="A flexible layout configurable with pattern string. ">PatternLayout</a></code> (either created automaticly by the appender or added by the user). Therefore by default all the conversion patterns in <code><a class="el" href="classlog4cxx_1_1_pattern_layout.html" title="A flexible layout configurable with pattern string. ">PatternLayout</a></code> can be used inside of the statement. (see the test cases for examples)</p>
<p>Overriding the <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#acdd1df6edd6df02a3a2fabdf197f2c5e">getLogStatement</a> method allows more explicit control of the statement used for logging.</p>
<p>For use as a base class:</p>
<ul>
<li>
<p class="startli">Override <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a08b7f6ae5633ed288db9806dac6b3482" title="Override this to link with your connection pooling system. ">getConnection()</a> to pass any connection you want. Typically this is used to enable application wide connection pooling.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Override closeConnection &ndash; if you override getConnection make sure to implement <code>closeConnection</code> to handle the connection you generated. Typically this would return the connection to the pool it came from.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Override getLogStatement to produce specialized or dynamic statements. The default uses the sql option value.</p>
<p class="endli"></p>
</li>
</ul>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="ad2d83a8e49404908492a8816ab5c9c56"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ad2d83a8e49404908492a8816ab5c9c56">SQLHANDLE</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0dd7c88bd1ee3273c903054961989748"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0dd7c88bd1ee3273c903054961989748">SQLHDBC</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad7380bf52dd05dd52648631049e1724d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ad7380bf52dd05dd52648631049e1724d">SQLHENV</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a10ab8679a65c8f8832f34a02011b1c17"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef short <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a10ab8679a65c8f8832f34a02011b1c17">SQLSMALLINT</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a579b87b0baa2043e387e34eed706f53b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html">ODBCAppender</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0ca5f1ce3dd0e75424bdcd8db0b58c18"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual ~<a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html">ODBCAppender</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="af1f3ced78d335ec9c2b800d6d5aa3ef8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void activateOptions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Activate the specified options. </p>
<p>Reimplemented from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#abe1aa95ede9cc9d0609905154129c0ba">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a0e1344f34583432e33fb23c587b8bccb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void append </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;&#160;</td>
<td class="paramname"><em>event</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds the event to the buffer. </p>
<p>When full the buffer is flushed. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a4c08a91d859f636117f07463bb53fe41">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a47feccb1873356363e4d0e302bc3822c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Closes the appender, flushing the buffer first then closing the default connection if it is open. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#af6ee7eacbde6b379b68d954e44f6e549">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="a7071a33ce15b2c3a16ff09690ca9937e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void closeConnection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0dd7c88bd1ee3273c903054961989748">SQLHDBC</a>&#160;</td>
<td class="paramname"><em>con</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override this to return the connection to a pool, or to clean up the resource. </p>
<p>The default behavior holds a single connection open until the appender is closed (typically when garbage collected). </p>
</div>
</div>
<a class="anchor" id="ae950230913c98f717c92ba028abd7fe5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void execute </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>sql</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override this to provide an alertnate method of getting connections (such as caching). </p>
<p>One method to fix this is to open connections at the start of <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a9ec012dcd0096c8b662dd018b181faec" title="loops through the buffer of LoggingEvents, gets a sql string from getLogStatement() and sends it to e...">flushBuffer()</a> and close them at the end. I use a connection pool outside of <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html">ODBCAppender</a> which is accessed in an override of this method. </p>
</div>
</div>
<a class="anchor" id="a9ec012dcd0096c8b662dd018b181faec"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void flushBuffer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>loops through the buffer of LoggingEvents, gets a sql string from <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#acdd1df6edd6df02a3a2fabdf197f2c5e" title="By default getLogStatement sends the event to the required Layout object. ">getLogStatement()</a> and sends it to <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ae950230913c98f717c92ba028abd7fe5" title="Override this to provide an alertnate method of getting connections (such as caching). ">execute()</a>. </p>
<p>Errors are sent to the errorHandler.</p>
<p>If a statement fails the LoggingEvent stays in the buffer! </p>
</div>
</div>
<a class="anchor" id="adec14dcb306a8c0f1811f7427248429a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t getBufferSize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a08b7f6ae5633ed288db9806dac6b3482"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0dd7c88bd1ee3273c903054961989748">SQLHDBC</a> getConnection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override this to link with your connection pooling system. </p>
<p>By default this creates a single connection which is held open until the object is garbage collected. </p>
</div>
</div>
<a class="anchor" id="acdd1df6edd6df02a3a2fabdf197f2c5e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> getLogStatement </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;&#160;</td>
<td class="paramname"><em>event</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">helpers::Pool</a> &amp;&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>By default getLogStatement sends the event to the required <a class="el" href="classlog4cxx_1_1_layout.html" title="Extend this abstract class to create your own log layout format. ">Layout</a> object. </p>
<p>The layout will format the given pattern into a workable SQL string.</p>
<p>Overriding this provides direct access to the LoggingEvent when constructing the logging statement. </p>
</div>
</div>
<a class="anchor" id="af15302fc282dc4e7bbd73b861016357e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&amp; getPassword </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7d4781aaddda08b472b4e6bc9560de21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&amp; getSql </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns pre-formated statement eg: insert into LogTable (msg) values ("%m") </p>
</div>
</div>
<a class="anchor" id="a06eb442fec96b0de4d76bbe6cc1557ff"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&amp; getURL </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae9c0d0eb7b1ee0a9d515f599cedc6a20"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&amp; getUser </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4312e727a9ea814779d2c9950dc3c73e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool requiresLayout </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html">ODBCAppender</a> requires a layout. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#a1fa0a21a0f0a6ec3a9e92a98db9ffa85">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="a1b1f387829104ee2f7d390b61a66f481"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setBufferSize </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>newBufferSize</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aee5023c29cca9dc68164b22a01cb7c6e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void setOption </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>option</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set options. </p>
<p>Reimplemented from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#aee5023c29cca9dc68164b22a01cb7c6e">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a66975d531aaca092a89777216fcbfdff"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setPassword </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>password</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a050215bb14548cbf0ca36aa7a426f0c0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void setSql </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set pre-formated statement eg: insert into LogTable (msg) values ("%m") </p>
</div>
</div>
<a class="anchor" id="a85c5ccc737e7910aa6198c83614f45a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setURL </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>url</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7fb78037faae88af122f46cfc5935c4f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setUser </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>user</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a2156ad21b9f11eb4e62a4969dd3ac07a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::list&lt;<a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a>&gt; buffer</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>ArrayList holding the buffer of Logging Events. </p>
</div>
</div>
<a class="anchor" id="a7be887a2ca0a258cf6b368d32fd87487"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t bufferSize</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>size of LoggingEvent buffer before writing to the database. </p>
<p>Default is 1. </p>
</div>
</div>
<a class="anchor" id="a68ed11f0d40d8fff0cc13820a419d1f8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0dd7c88bd1ee3273c903054961989748">SQLHDBC</a> connection</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Connection used by default. </p>
<p>The connection is opened the first time it is needed and then held open until the appender is closed (usually at garbage collection). This behavior is best modified by creating a sub-class and overriding the <code>getConnection</code> and <code>closeConnection</code> methods. </p>
</div>
</div>
<a class="anchor" id="a6942ecd25e0671fa6e7346d84888eab6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> databasePassword</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>User to use for default connection handling. </p>
</div>
</div>
<a class="anchor" id="a4ec73418fef52ea00dc3b94f682cf525"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> databaseURL</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>URL of the DB for default connection handling. </p>
</div>
</div>
<a class="anchor" id="abb1c412066a897d15480261a944e7b5c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> databaseUser</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>User to connect as for default connection handling. </p>
</div>
</div>
<a class="anchor" id="a9e986b27a58688aa57b320d62b6c3a29"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#ad7380bf52dd05dd52648631049e1724d">SQLHENV</a> env</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa4a300223285823bf05b6cb7bc14e5c0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> sqlStatement</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Stores the string given to the pattern layout for conversion into a SQL statement, eg: insert into LogTable (Thread, <a class="el" href="classlog4cxx_1_1_file.html" title="An abstract representation of file and directory path names. ">File</a>, Message) values ("%t", "%F", "%m") </p>
<p>Be careful of quotes in your messages!</p>
<p>Also see <a class="el" href="classlog4cxx_1_1_pattern_layout.html" title="A flexible layout configurable with pattern string. ">PatternLayout</a>. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="odbcappender_8h.html">odbcappender.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
</body>
</html>