blob: d6a33eb029071103a9ca9261e50538c7d36f5cc7 [file] [log] [blame]
<html>
<head>
<title>
log4cxx - Documentation
</title>
<link href="../css/doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body bgcolor="#ffffff" text="#000000" link="#525D76">
<!-- START Header table -->
<table border="0" cellspacing="0" width="90%">
<!-- TOP IMAGE -->
<tr>
<td colspan="2">
<a href="http://logging.apache.org">
<img src="http://logging.apache.org/images/ls-logo.jpg" align="left" border="0"/>
</a>
</td>
</tr>
</table>
<!-- END Header table -->
<!-- START main table -->
<table id="main" border="0" width="90%" cellspacing="2" cellpadding="0">
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr>
<!-- LEFT SIDE NAVIGATION -->
<td id="navbar" valign="top">
<!-- ============================================================ -->
<table id="navbar" border="0" cellspacing="0" cellpadding="0">
<tr >
<td class="navbarHeader" nowrap="true">
<strong>Apache</strong>
</td>
</tr>
<tr><td class="navbarItem"><small> <a href="http://www.apache.org">Apache Home</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="http://logging.apache.org/">Logging Services</a>
</small></td></tr>
<tr >
<td class="navbarHeader" nowrap="true">
<strong>log4cxx project</strong>
</td>
</tr>
<tr><td class="navbarItem"><small> <a href="../index.html">About</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../news.html">News</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../team.html">Team</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../manual/index.html">Documentation</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../performance.html">Performance</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../download.html">Download</a>
</small></td></tr>
</table>
</td>
<td id="mainContents" align="left" valign="top">
<hr>
<!-- Generated by Doxygen 1.3.5 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
<h1>ErrorHandler Class Reference</h1>Inheritance diagram for ErrorHandler:<p><center><img src="classlog4cxx_1_1spi_1_1ErrorHandler__inherit__graph.png" border="0" usemap="#ErrorHandler__inherit__map" alt="Inheritance graph"></center>
<map name="ErrorHandler__inherit__map">
<area href="classlog4cxx_1_1helpers_1_1OnlyOnceErrorHandler.html" shape="rect" coords="6,242,153,266" alt="">
<area href="classlog4cxx_1_1varia_1_1FallbackErrorHandler.html" shape="rect" coords="177,242,313,266" alt="">
<area href="classlog4cxx_1_1spi_1_1OptionHandler.html" shape="rect" coords="114,93,210,117" alt="">
<area href="classlog4cxx_1_1helpers_1_1Object.html" shape="rect" coords="137,19,187,43" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for ErrorHandler:<p><center><img src="classlog4cxx_1_1spi_1_1ErrorHandler__coll__graph.png" border="0" usemap="#ErrorHandler__coll__map" alt="Collaboration graph"></center>
<map name="ErrorHandler__coll__map">
<area href="classlog4cxx_1_1spi_1_1OptionHandler.html" shape="rect" coords="7,93,102,117" alt="">
<area href="classlog4cxx_1_1helpers_1_1Object.html" shape="rect" coords="29,18,80,42" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classlog4cxx_1_1spi_1_1ErrorHandler-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1spi_1_1ErrorHandler.html#a1">setLogger</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a> &amp;logger)=0</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1spi_1_1ErrorHandler.html#a2">error</a> (const String &amp;message, <a class="el" href="classlog4cxx_1_1helpers_1_1Exception.html">helpers::Exception</a> &amp;e, int errorCode) const=0</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1spi_1_1ErrorHandler.html#a3">error</a> (const String &amp;message) const=0</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1spi_1_1ErrorHandler.html#a4">error</a> (const String &amp;message, <a class="el" href="classlog4cxx_1_1helpers_1_1Exception.html">helpers::Exception</a> &amp;e, int errorCode, const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggingEventPtr</a> &amp;event) const=0</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1spi_1_1ErrorHandler.html#a5">setAppender</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">AppenderPtr</a> &amp;appender)=0</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1spi_1_1ErrorHandler.html#a6">setBackupAppender</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">AppenderPtr</a> &amp;appender)=0</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Appenders may delegate their error handling to <code>ErrorHandlers</code>.<p>
Error handling is a particularly tedious to get right because by definition errors are hard to predict and to reproduce.<p>
Please take the time to contact the author in case you discover that errors are not properly handled. You are most welcome to suggest new error handling policies or criticize existing policies.
<p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a4" doxytag="log4cxx::spi::ErrorHandler::error" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual void error </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>message</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="el" href="classlog4cxx_1_1helpers_1_1Exception.html">helpers::Exception</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>e</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int&nbsp;</td>
<td class="mdname" nowrap> <em>errorCode</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggingEventPtr</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>event</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"> const<code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method is invoked to handle the error.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>message</em>&nbsp;</td><td>The message assoicated with the error. </td></tr>
<tr><td valign=top><em>e</em>&nbsp;</td><td>The Exption that was thrown when the error occured. </td></tr>
<tr><td valign=top><em>errorCode</em>&nbsp;</td><td>The error code associated with the error. </td></tr>
<tr><td valign=top><em>event</em>&nbsp;</td><td>The logging event that the failing appender is asked to log.</td></tr>
</table>
</dl>
</td>
</tr>
</table>
<a class="anchor" name="a3" doxytag="log4cxx::spi::ErrorHandler::error" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual void error </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>message</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const<code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method is normally used to just print the error message passed as a parameter.
<p>
Implemented in <a class="el" href="classlog4cxx_1_1helpers_1_1OnlyOnceErrorHandler.html#a6">OnlyOnceErrorHandler</a>, and <a class="el" href="classlog4cxx_1_1varia_1_1FallbackErrorHandler.html#a6">FallbackErrorHandler</a>. </td>
</tr>
</table>
<a class="anchor" name="a2" doxytag="log4cxx::spi::ErrorHandler::error" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual void error </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>message</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="el" href="classlog4cxx_1_1helpers_1_1Exception.html">helpers::Exception</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>e</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int&nbsp;</td>
<td class="mdname" nowrap> <em>errorCode</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"> const<code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Equivalent to the error(const String&amp;, <a class="el" href="classlog4cxx_1_1helpers_1_1Exception.html">helpers::Exception</a>&amp;, int, <a class="el" href="classlog4cxx_1_1spi_1_1LoggingEvent.html">spi::LoggingEvent</a>&amp;) with the the event parameteter set to null.
<p>
Implemented in <a class="el" href="classlog4cxx_1_1varia_1_1FallbackErrorHandler.html#a4">FallbackErrorHandler</a>. </td>
</tr>
</table>
<a class="anchor" name="a5" doxytag="log4cxx::spi::ErrorHandler::setAppender" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual void setAppender </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">AppenderPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>appender</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Set the appender for which errors are handled. This method is usually called when the error handler is configured.
<p>
Implemented in <a class="el" href="classlog4cxx_1_1helpers_1_1OnlyOnceErrorHandler.html#a7">OnlyOnceErrorHandler</a>, and <a class="el" href="classlog4cxx_1_1varia_1_1FallbackErrorHandler.html#a8">FallbackErrorHandler</a>. </td>
</tr>
</table>
<a class="anchor" name="a6" doxytag="log4cxx::spi::ErrorHandler::setBackupAppender" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual void setBackupAppender </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">AppenderPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>appender</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Set the appender to fallback upon in case of failure.
<p>
Implemented in <a class="el" href="classlog4cxx_1_1helpers_1_1OnlyOnceErrorHandler.html#a8">OnlyOnceErrorHandler</a>, and <a class="el" href="classlog4cxx_1_1varia_1_1FallbackErrorHandler.html#a9">FallbackErrorHandler</a>. </td>
</tr>
</table>
<a class="anchor" name="a1" doxytag="log4cxx::spi::ErrorHandler::setLogger" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual void setLogger </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>logger</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Add a reference to a logger to which the failing appender might be attached to. The failing appender will be searched and replaced only in the loggers you add through this method.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>logger</em>&nbsp;</td><td>One of the loggers that will be searched for the failing appender in view of replacement.</td></tr>
</table>
</dl>
<p>
Implemented in <a class="el" href="classlog4cxx_1_1helpers_1_1OnlyOnceErrorHandler.html#a1">OnlyOnceErrorHandler</a>, and <a class="el" href="classlog4cxx_1_1varia_1_1FallbackErrorHandler.html#a1">FallbackErrorHandler</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li>errorhandler.h</ul>
</td>
</tr>
<!-- FOOTER -->
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr><td colspan="2">
<div align="center"><font color="#525D76" size="-1"><em>
Copyright &#169; 1999-2004, Apache Software Foundation
</em></font></div>
</td></tr>
</table>
<!-- END main table -->
</body>
</html>
<!-- end the processing -->