blob: 2a9e4d3c22bd86ec981e5e5f2a5d30bf4671b607 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PVLogger class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>PVLogger Class Reference</h1><code>#include &lt;<a class="el" href="pvlogger_8h-source.html">pvlogger.h</a>&gt;</code>
<p>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
<tr><td nowrap align=right valign=top>typedef int32&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#s0">log_level_type</a></td></tr>
<tr><td nowrap align=right valign=top>typedef int32&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#s1">message_id_type</a></td></tr>
<tr><td nowrap align=right valign=top>typedef int32&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#s2">filter_status_type</a></td></tr>
<tr><td nowrap align=right valign=top>typedef <a class="el" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a>&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#s3">alloc_type</a></td></tr>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a0">SetLogLevel</a> (<a class="el" href="classPVLogger.html#s0">log_level_type</a> level)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a1">SetLogLevelAndPropagate</a> (<a class="el" href="classPVLogger.html#s0">log_level_type</a> level)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a2">GetLogLevel</a> ()</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a3">DisableAppenderInheritance</a> ()</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a4">AddAppender</a> (<a class="el" href="classOsclSharedPtr.html">OsclSharedPtr</a>&lt; <a class="el" href="classPVLoggerAppender.html">PVLoggerAppender</a> &gt; &amp;appender)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a5">RemoveAppender</a> (<a class="el" href="classOsclSharedPtr.html">OsclSharedPtr</a>&lt; <a class="el" href="classPVLoggerAppender.html">PVLoggerAppender</a> &gt; &amp;appender)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a6">AddFilter</a> (<a class="el" href="classOsclSharedPtr.html">OsclSharedPtr</a>&lt; <a class="el" href="classPVLoggerFilter.html">PVLoggerFilter</a> &gt; &amp;filter)</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a7">GetNumAppenders</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a8">IsActive</a> (<a class="el" href="classPVLogger.html#s0">log_level_type</a> level)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a9">LogMsgStringV</a> (<a class="el" href="classPVLogger.html#s1">message_id_type</a> msgID, const char *fmt, va_list arguments)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a10">LogMsgBuffersV</a> (<a class="el" href="classPVLogger.html#s1">message_id_type</a> msgID, int32 numPairs, va_list arguments)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a11">LogMsgString</a> (<a class="el" href="classPVLogger.html#s1">message_id_type</a> msgID, const char *fmt,...)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a12">LogMsgBuffers</a> (<a class="el" href="classPVLogger.html#s1">message_id_type</a> msgID, int32 numPairs,...)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a13">PVLogger</a> (const char *inputTag, <a class="el" href="classPVLogger.html#s0">log_level_type</a> level, bool oAppenderInheritance)</td></tr>
<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a14">~PVLogger</a> ()</td></tr>
<tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#d0">Init</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#d1">Cleanup</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF PVLogger *&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#d2">GetLoggerObject</a> (const char *inputTag)</td></tr>
<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#b0">SetParent</a> (PVLogger *parentLogger)</td></tr>
<tr><td nowrap align=right valign=top>PVLogger *&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#b1">GetParent</a> ()</td></tr>
<tr><td colspan=2><br><h2>Friends</h2></td></tr>
<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#l0">PVLoggerRegistry</a></td></tr>
</table>
<hr><h2>Member Typedef Documentation</h2>
<a name="s3" doxytag="PVLogger::alloc_type"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> typedef <a class="el" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a> PVLogger::alloc_type
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="s2" doxytag="PVLogger::filter_status_type"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> typedef int32 PVLogger::filter_status_type
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="s0" doxytag="PVLogger::log_level_type"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> typedef int32 PVLogger::log_level_type
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="s1" doxytag="PVLogger::message_id_type"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> typedef int32 PVLogger::message_id_type
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a13" doxytag="PVLogger::PVLogger"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF PVLogger::PVLogger </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>inputTag</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>level</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>bool&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>oAppenderInheritance</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Logger Constructor<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>tag</em>&nbsp;</td><td>
Logger tag, unique to a logging control point </td></tr>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
Active Log level of the logger </td></tr>
<tr><td valign=top><em>oAppenderInheritance</em>&nbsp;</td><td>
</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE </dl> </td>
</tr>
</table>
<a name="a14" doxytag="PVLogger::~PVLogger"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVLogger::~PVLogger </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a4" doxytag="PVLogger::AddAppender"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void PVLogger::AddAppender </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classOsclSharedPtr.html">OsclSharedPtr</a>&lt; <a class="el" href="classPVLoggerAppender.html">PVLoggerAppender</a> &gt; &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>appender</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method adds an appender to the logging control point. Each logger maintains a list of appenders. Any msg to a logger if deemed active is logged to all the appenders.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>appender</em>&nbsp;</td><td>
pointer to the appender to add</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>leaves</em>&nbsp;</td><td>
if out of memory </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a6" doxytag="PVLogger::AddFilter"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void PVLogger::AddFilter </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classOsclSharedPtr.html">OsclSharedPtr</a>&lt; <a class="el" href="classPVLoggerFilter.html">PVLoggerFilter</a> &gt; &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>filter</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method adds a message filter to the logging control point. Each logger maintains a list of filters. Any msg to a logger if deemed active is passed through the msg filters prior to logging.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>msgFilter</em>&nbsp;</td><td>
pointer to the filter to add</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>leaves</em>&nbsp;</td><td>
if out of memory </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="d1" doxytag="PVLogger::Cleanup"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::Cleanup </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Frees the PVLogger singleton used by the current thread. This must be called before thread exit. No messages can be logged after cleanup.
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
</dl> </td>
</tr>
</table>
<a name="a3" doxytag="PVLogger::DisableAppenderInheritance"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void PVLogger::DisableAppenderInheritance </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method disables appender inheritance for the logging control point </td>
</tr>
</table>
<a name="d2" doxytag="PVLogger::GetLoggerObject"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF PVLogger* PVLogger::GetLoggerObject </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const char *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>inputTag</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This is a factory method to create a log control point, with a certain input tag. There is a central registry of all the loggers, with their corresponding tags, called PV Logger Registry. In case the logger with the specified tag exists in the global registry, it is returned, else a new one is created and a pointer to the same is returend.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>inputTag</em>&nbsp;</td><td>
logger tag, viz. "x.y.z" </td></tr>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
log level associated with the logging control point (All messages with log levels less than equal to the log level of the control point would be logged)</td></tr>
<tr><td valign=top><em>oAppenderInheritance</em>&nbsp;</td><td>
</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
PVLogger* Pointer to the logging control point</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>leaves</em>&nbsp;</td><td>
if out of memory </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a2" doxytag="PVLogger::GetLogLevel"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classPVLogger.html#s0">log_level_type</a> PVLogger::GetLogLevel </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method returns the log level of a control point. This could either have been set explicitly by the user (at the time of creation or later) or could have been inherited from one of its ancestors.
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
log level associated with the logging control point </dl> </td>
</tr>
</table>
<a name="a7" doxytag="PVLogger::GetNumAppenders"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> uint32 PVLogger::GetNumAppenders </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method returns the number of appenders attached to the logging control point. </td>
</tr>
</table>
<a name="b1" doxytag="PVLogger::GetParent"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> PVLogger* PVLogger::GetParent </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline, protected]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="d0" doxytag="PVLogger::Init"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::Init </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
PVLogger needs to be initialized once per thread. This creates the PVLogger singleton that is used throughout the duration of the thread. Initialization must occur before the first message is logged.<dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>leaves</em>&nbsp;</td><td>
if out of memory </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a8" doxytag="PVLogger::IsActive"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF bool PVLogger::IsActive </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>level</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method determines if a msg passed to the logging control point is active or not. Only messages that are deemed active are logged. Messages are considered not active if any of the following criteria are met:<ul>
<li>All logging is disabled at this logging control point</ul>
If all the log levels, leading upto the root log point are uninitialized<ul>
<li>If the log level of the incoming message is LESS THAN that of the active log level of the logging control point.</ul>
<dl compact><dt><b>Returns: </b></dt><dd>
BOOL </dl> </td>
</tr>
</table>
<a name="a12" doxytag="PVLogger::LogMsgBuffers"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::LogMsgBuffers </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s1">message_id_type</a>&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>msgID</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>numPairs</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>...&nbsp;</td>
<td class="mdname" nowrap>&nbsp;</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method logs opaque data buffers to all the appenders, after running thrrough the message filters. After logging the message to the appenders attached to the current control point, the message is passed up to the parent node, only if appender inheritance is enabled.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>msgID</em>&nbsp;</td><td>
Message ID, that is unique to a message </td></tr>
<tr><td valign=top><em>numPairs</em>&nbsp;</td><td>
Number of (ptr_len, ptr) pairs </td></tr>
<tr><td valign=top><em>arguments</em>&nbsp;</td><td>
Variable list of arguments</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE </dl> </td>
</tr>
</table>
<a name="a10" doxytag="PVLogger::LogMsgBuffersV"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::LogMsgBuffersV </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s1">message_id_type</a>&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>msgID</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>numPairs</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>va_list&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>arguments</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method logs opaque data buffers to all the appenders, after running thrrough the message filters. After logging the message to the appenders attached to the current control point, the message is passed up to the parent node, only if appender inheritance is enabled.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>msgID</em>&nbsp;</td><td>
Message ID, that is unique to a message </td></tr>
<tr><td valign=top><em>numPairs</em>&nbsp;</td><td>
Number of (ptr_len, ptr) pairs </td></tr>
<tr><td valign=top><em>arguments</em>&nbsp;</td><td>
Variable list of arguments</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE </dl> </td>
</tr>
</table>
<a name="a11" doxytag="PVLogger::LogMsgString"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::LogMsgString </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s1">message_id_type</a>&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>msgID</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>fmt</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>...&nbsp;</td>
<td class="mdname" nowrap>&nbsp;</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method logs formatted text msg to all the appenders, after running thrrough the message filters. After logging the message to the appenders attached to the current control point, the message is passed up to the parent node, only if appender inheritance is enabled.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>msgID</em>&nbsp;</td><td>
Message ID, that is unique to a message </td></tr>
<tr><td valign=top><em>fmt</em>&nbsp;</td><td>
format string, similar to one taken by printf </td></tr>
<tr><td valign=top><em>arguments</em>&nbsp;</td><td>
Variable list of arguments</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE </dl> </td>
</tr>
</table>
<a name="a9" doxytag="PVLogger::LogMsgStringV"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::LogMsgStringV </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s1">message_id_type</a>&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>msgID</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>fmt</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>va_list&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>arguments</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method logs formatted text msg to all the appenders, after running thrrough the message filters. After logging the message to the appenders attached to the current control point, the message is passed up to the parent node, only if appender inheritance is enabled.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>msgID</em>&nbsp;</td><td>
Message ID, that is unique to a message </td></tr>
<tr><td valign=top><em>fmt</em>&nbsp;</td><td>
format string, similar to one taken by printf </td></tr>
<tr><td valign=top><em>arguments</em>&nbsp;</td><td>
Variable list of arguments</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE </dl> </td>
</tr>
</table>
<a name="a5" doxytag="PVLogger::RemoveAppender"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void PVLogger::RemoveAppender </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classOsclSharedPtr.html">OsclSharedPtr</a>&lt; <a class="el" href="classPVLoggerAppender.html">PVLoggerAppender</a> &gt; &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>appender</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method removes an appender from the logging control point. Each logger maintains a list of appenders. Any msg to a logger if deemed active is logged to all the appenders.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>appender</em>&nbsp;</td><td>
pointer to the appender to delete</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE </dl> </td>
</tr>
</table>
<a name="a0" doxytag="PVLogger::SetLogLevel"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void PVLogger::SetLogLevel </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>level</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method is used to set the log level of a control point.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
log level associated with the logging control point</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE </dl> </td>
</tr>
</table>
<a name="a1" doxytag="PVLogger::SetLogLevelAndPropagate"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::SetLogLevelAndPropagate </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>level</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method is used to set the log level of a control point, as well as to propagate the level to all the descendants of this control point.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
log level associated with the logging control point</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
NONE </dl> </td>
</tr>
</table>
<a name="b0" doxytag="PVLogger::SetParent"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void PVLogger::SetParent </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVLogger *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>parentLogger</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline, protected]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr><h2>Friends And Related Function Documentation</h2>
<a name="l0" doxytag="PVLogger::PVLoggerRegistry"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> friend class PVLoggerRegistry<code> [friend]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="pvlogger_8h-source.html">pvlogger.h</a></ul>
<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
</small></address>
</body>
</html>