• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>PVLogger class Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5</head><body>
6<!-- Generated by Doxygen 1.2.18 -->
7<center>
8<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>
9<hr><h1>PVLogger Class Reference</h1><code>#include &lt;<a class="el" href="pvlogger_8h-source.html">pvlogger.h</a>&gt;</code>
10<p>
11<table border=0 cellpadding=0 cellspacing=0>
12<tr><td></td></tr>
13<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
14<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>
15<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>
16<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>
17<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>
18<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
19<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>
20<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>
21<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>
22<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a3">DisableAppenderInheritance</a> ()</td></tr>
23<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>
24<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>
25<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>
26<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a7">GetNumAppenders</a> ()</td></tr>
27<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>
28<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>
29<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>
30<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>
31<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>
32<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>
33<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#a14">~PVLogger</a> ()</td></tr>
34<tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr>
35<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>
36<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>
37<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>
38<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
39<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>
40<tr><td nowrap align=right valign=top>PVLogger *&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#b1">GetParent</a> ()</td></tr>
41<tr><td colspan=2><br><h2>Friends</h2></td></tr>
42<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="classPVLogger.html#l0">PVLoggerRegistry</a></td></tr>
43</table>
44<hr><h2>Member Typedef Documentation</h2>
45<a name="s3" doxytag="PVLogger::alloc_type"></a><p>
46<table width="100%" cellpadding="2" cellspacing="0" border="0">
47  <tr>
48    <td class="md">
49      <table cellpadding="0" cellspacing="0" border="0">
50        <tr>
51          <td class="md" nowrap valign="top"> typedef <a class="el" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a> PVLogger::alloc_type
52      </table>
53    </td>
54  </tr>
55</table>
56<table cellspacing=5 cellpadding=0 border=0>
57  <tr>
58    <td>
59      &nbsp;
60    </td>
61    <td>
62
63<p>
64    </td>
65  </tr>
66</table>
67<a name="s2" doxytag="PVLogger::filter_status_type"></a><p>
68<table width="100%" cellpadding="2" cellspacing="0" border="0">
69  <tr>
70    <td class="md">
71      <table cellpadding="0" cellspacing="0" border="0">
72        <tr>
73          <td class="md" nowrap valign="top"> typedef int32 PVLogger::filter_status_type
74      </table>
75    </td>
76  </tr>
77</table>
78<table cellspacing=5 cellpadding=0 border=0>
79  <tr>
80    <td>
81      &nbsp;
82    </td>
83    <td>
84
85<p>
86    </td>
87  </tr>
88</table>
89<a name="s0" doxytag="PVLogger::log_level_type"></a><p>
90<table width="100%" cellpadding="2" cellspacing="0" border="0">
91  <tr>
92    <td class="md">
93      <table cellpadding="0" cellspacing="0" border="0">
94        <tr>
95          <td class="md" nowrap valign="top"> typedef int32 PVLogger::log_level_type
96      </table>
97    </td>
98  </tr>
99</table>
100<table cellspacing=5 cellpadding=0 border=0>
101  <tr>
102    <td>
103      &nbsp;
104    </td>
105    <td>
106
107<p>
108    </td>
109  </tr>
110</table>
111<a name="s1" doxytag="PVLogger::message_id_type"></a><p>
112<table width="100%" cellpadding="2" cellspacing="0" border="0">
113  <tr>
114    <td class="md">
115      <table cellpadding="0" cellspacing="0" border="0">
116        <tr>
117          <td class="md" nowrap valign="top"> typedef int32 PVLogger::message_id_type
118      </table>
119    </td>
120  </tr>
121</table>
122<table cellspacing=5 cellpadding=0 border=0>
123  <tr>
124    <td>
125      &nbsp;
126    </td>
127    <td>
128
129<p>
130    </td>
131  </tr>
132</table>
133<hr><h2>Constructor &amp; Destructor Documentation</h2>
134<a name="a13" doxytag="PVLogger::PVLogger"></a><p>
135<table width="100%" cellpadding="2" cellspacing="0" border="0">
136  <tr>
137    <td class="md">
138      <table cellpadding="0" cellspacing="0" border="0">
139        <tr>
140          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF PVLogger::PVLogger </td>
141          <td class="md" valign="top">(&nbsp;</td>
142          <td class="md" nowrap valign="top">const char *&nbsp;</td>
143          <td class="mdname" nowrap>&nbsp; <em>inputTag</em>, </td>
144        </tr>
145        <tr>
146          <td></td>
147          <td></td>
148          <td class="md" nowrap><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td>
149          <td class="mdname" nowrap>&nbsp; <em>level</em>, </td>
150        </tr>
151        <tr>
152          <td></td>
153          <td></td>
154          <td class="md" nowrap>bool&nbsp;</td>
155          <td class="mdname" nowrap>&nbsp; <em>oAppenderInheritance</em></td>
156        </tr>
157        <tr>
158          <td></td>
159          <td class="md">)&nbsp;</td>
160          <td class="md" colspan="2"></td>
161        </tr>
162
163      </table>
164    </td>
165  </tr>
166</table>
167<table cellspacing=5 cellpadding=0 border=0>
168  <tr>
169    <td>
170      &nbsp;
171    </td>
172    <td>
173
174<p>
175Logger Constructor<dl compact><dt><b>Parameters: </b></dt><dd>
176<table border=0 cellspacing=2 cellpadding=0>
177<tr><td valign=top><em>tag</em>&nbsp;</td><td>
178Logger tag, unique to a logging control point </td></tr>
179<tr><td valign=top><em>level</em>&nbsp;</td><td>
180Active Log level of the logger </td></tr>
181<tr><td valign=top><em>oAppenderInheritance</em>&nbsp;</td><td>
182</td></tr>
183</table>
184</dl><dl compact><dt><b>Returns: </b></dt><dd>
185NONE </dl>    </td>
186  </tr>
187</table>
188<a name="a14" doxytag="PVLogger::~PVLogger"></a><p>
189<table width="100%" cellpadding="2" cellspacing="0" border="0">
190  <tr>
191    <td class="md">
192      <table cellpadding="0" cellspacing="0" border="0">
193        <tr>
194          <td class="md" nowrap valign="top"> virtual PVLogger::~PVLogger </td>
195          <td class="md" valign="top">(&nbsp;</td>
196          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
197          <td class="md" valign="top">)&nbsp;</td>
198          <td class="md" nowrap><code> [inline, virtual]</code></td>
199        </tr>
200
201      </table>
202    </td>
203  </tr>
204</table>
205<table cellspacing=5 cellpadding=0 border=0>
206  <tr>
207    <td>
208      &nbsp;
209    </td>
210    <td>
211
212<p>
213    </td>
214  </tr>
215</table>
216<hr><h2>Member Function Documentation</h2>
217<a name="a4" doxytag="PVLogger::AddAppender"></a><p>
218<table width="100%" cellpadding="2" cellspacing="0" border="0">
219  <tr>
220    <td class="md">
221      <table cellpadding="0" cellspacing="0" border="0">
222        <tr>
223          <td class="md" nowrap valign="top"> void PVLogger::AddAppender </td>
224          <td class="md" valign="top">(&nbsp;</td>
225          <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>
226          <td class="mdname1" valign="top" nowrap>&nbsp; <em>appender</em>          </td>
227          <td class="md" valign="top">)&nbsp;</td>
228          <td class="md" nowrap><code> [inline]</code></td>
229        </tr>
230
231      </table>
232    </td>
233  </tr>
234</table>
235<table cellspacing=5 cellpadding=0 border=0>
236  <tr>
237    <td>
238      &nbsp;
239    </td>
240    <td>
241
242<p>
243This 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>
244<table border=0 cellspacing=2 cellpadding=0>
245<tr><td valign=top><em>appender</em>&nbsp;</td><td>
246pointer to the appender to add</td></tr>
247</table>
248</dl><dl compact><dt><b>Returns: </b></dt><dd>
249NONE</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
250<table border=0 cellspacing=2 cellpadding=0>
251<tr><td valign=top><em>leaves</em>&nbsp;</td><td>
252 if out of memory </td></tr>
253</table>
254</dl>    </td>
255  </tr>
256</table>
257<a name="a6" doxytag="PVLogger::AddFilter"></a><p>
258<table width="100%" cellpadding="2" cellspacing="0" border="0">
259  <tr>
260    <td class="md">
261      <table cellpadding="0" cellspacing="0" border="0">
262        <tr>
263          <td class="md" nowrap valign="top"> void PVLogger::AddFilter </td>
264          <td class="md" valign="top">(&nbsp;</td>
265          <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>
266          <td class="mdname1" valign="top" nowrap>&nbsp; <em>filter</em>          </td>
267          <td class="md" valign="top">)&nbsp;</td>
268          <td class="md" nowrap><code> [inline]</code></td>
269        </tr>
270
271      </table>
272    </td>
273  </tr>
274</table>
275<table cellspacing=5 cellpadding=0 border=0>
276  <tr>
277    <td>
278      &nbsp;
279    </td>
280    <td>
281
282<p>
283This 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>
284<table border=0 cellspacing=2 cellpadding=0>
285<tr><td valign=top><em>msgFilter</em>&nbsp;</td><td>
286pointer to the filter to add</td></tr>
287</table>
288</dl><dl compact><dt><b>Returns: </b></dt><dd>
289NONE</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
290<table border=0 cellspacing=2 cellpadding=0>
291<tr><td valign=top><em>leaves</em>&nbsp;</td><td>
292 if out of memory </td></tr>
293</table>
294</dl>    </td>
295  </tr>
296</table>
297<a name="d1" doxytag="PVLogger::Cleanup"></a><p>
298<table width="100%" cellpadding="2" cellspacing="0" border="0">
299  <tr>
300    <td class="md">
301      <table cellpadding="0" cellspacing="0" border="0">
302        <tr>
303          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::Cleanup </td>
304          <td class="md" valign="top">(&nbsp;</td>
305          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
306          <td class="md" valign="top">)&nbsp;</td>
307          <td class="md" nowrap><code> [static]</code></td>
308        </tr>
309
310      </table>
311    </td>
312  </tr>
313</table>
314<table cellspacing=5 cellpadding=0 border=0>
315  <tr>
316    <td>
317      &nbsp;
318    </td>
319    <td>
320
321<p>
322Frees the PVLogger singleton used by the current thread. This must be called before thread exit. No messages can be logged after cleanup.
323<p>
324<dl compact><dt><b>Returns: </b></dt><dd>
325</dl>    </td>
326  </tr>
327</table>
328<a name="a3" doxytag="PVLogger::DisableAppenderInheritance"></a><p>
329<table width="100%" cellpadding="2" cellspacing="0" border="0">
330  <tr>
331    <td class="md">
332      <table cellpadding="0" cellspacing="0" border="0">
333        <tr>
334          <td class="md" nowrap valign="top"> void PVLogger::DisableAppenderInheritance </td>
335          <td class="md" valign="top">(&nbsp;</td>
336          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
337          <td class="md" valign="top">)&nbsp;</td>
338          <td class="md" nowrap><code> [inline]</code></td>
339        </tr>
340
341      </table>
342    </td>
343  </tr>
344</table>
345<table cellspacing=5 cellpadding=0 border=0>
346  <tr>
347    <td>
348      &nbsp;
349    </td>
350    <td>
351
352<p>
353This method disables appender inheritance for the logging control point     </td>
354  </tr>
355</table>
356<a name="d2" doxytag="PVLogger::GetLoggerObject"></a><p>
357<table width="100%" cellpadding="2" cellspacing="0" border="0">
358  <tr>
359    <td class="md">
360      <table cellpadding="0" cellspacing="0" border="0">
361        <tr>
362          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF PVLogger* PVLogger::GetLoggerObject </td>
363          <td class="md" valign="top">(&nbsp;</td>
364          <td class="md" nowrap valign="top">const char *&nbsp;</td>
365          <td class="mdname1" valign="top" nowrap>&nbsp; <em>inputTag</em>          </td>
366          <td class="md" valign="top">)&nbsp;</td>
367          <td class="md" nowrap><code> [static]</code></td>
368        </tr>
369
370      </table>
371    </td>
372  </tr>
373</table>
374<table cellspacing=5 cellpadding=0 border=0>
375  <tr>
376    <td>
377      &nbsp;
378    </td>
379    <td>
380
381<p>
382This 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>
383<table border=0 cellspacing=2 cellpadding=0>
384<tr><td valign=top><em>inputTag</em>&nbsp;</td><td>
385logger tag, viz. "x.y.z" </td></tr>
386<tr><td valign=top><em>level</em>&nbsp;</td><td>
387log 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>
388<tr><td valign=top><em>oAppenderInheritance</em>&nbsp;</td><td>
389</td></tr>
390</table>
391</dl><dl compact><dt><b>Returns: </b></dt><dd>
392PVLogger* Pointer to the logging control point</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
393<table border=0 cellspacing=2 cellpadding=0>
394<tr><td valign=top><em>leaves</em>&nbsp;</td><td>
395 if out of memory </td></tr>
396</table>
397</dl>    </td>
398  </tr>
399</table>
400<a name="a2" doxytag="PVLogger::GetLogLevel"></a><p>
401<table width="100%" cellpadding="2" cellspacing="0" border="0">
402  <tr>
403    <td class="md">
404      <table cellpadding="0" cellspacing="0" border="0">
405        <tr>
406          <td class="md" nowrap valign="top"> <a class="el" href="classPVLogger.html#s0">log_level_type</a> PVLogger::GetLogLevel </td>
407          <td class="md" valign="top">(&nbsp;</td>
408          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
409          <td class="md" valign="top">)&nbsp;</td>
410          <td class="md" nowrap><code> [inline]</code></td>
411        </tr>
412
413      </table>
414    </td>
415  </tr>
416</table>
417<table cellspacing=5 cellpadding=0 border=0>
418  <tr>
419    <td>
420      &nbsp;
421    </td>
422    <td>
423
424<p>
425This 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.
426<p>
427<dl compact><dt><b>Returns: </b></dt><dd>
428log level associated with the logging control point </dl>    </td>
429  </tr>
430</table>
431<a name="a7" doxytag="PVLogger::GetNumAppenders"></a><p>
432<table width="100%" cellpadding="2" cellspacing="0" border="0">
433  <tr>
434    <td class="md">
435      <table cellpadding="0" cellspacing="0" border="0">
436        <tr>
437          <td class="md" nowrap valign="top"> uint32 PVLogger::GetNumAppenders </td>
438          <td class="md" valign="top">(&nbsp;</td>
439          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
440          <td class="md" valign="top">)&nbsp;</td>
441          <td class="md" nowrap><code> [inline]</code></td>
442        </tr>
443
444      </table>
445    </td>
446  </tr>
447</table>
448<table cellspacing=5 cellpadding=0 border=0>
449  <tr>
450    <td>
451      &nbsp;
452    </td>
453    <td>
454
455<p>
456This method returns the number of appenders attached to the logging control point.     </td>
457  </tr>
458</table>
459<a name="b1" doxytag="PVLogger::GetParent"></a><p>
460<table width="100%" cellpadding="2" cellspacing="0" border="0">
461  <tr>
462    <td class="md">
463      <table cellpadding="0" cellspacing="0" border="0">
464        <tr>
465          <td class="md" nowrap valign="top"> PVLogger* PVLogger::GetParent </td>
466          <td class="md" valign="top">(&nbsp;</td>
467          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
468          <td class="md" valign="top">)&nbsp;</td>
469          <td class="md" nowrap><code> [inline, protected]</code></td>
470        </tr>
471
472      </table>
473    </td>
474  </tr>
475</table>
476<table cellspacing=5 cellpadding=0 border=0>
477  <tr>
478    <td>
479      &nbsp;
480    </td>
481    <td>
482
483<p>
484    </td>
485  </tr>
486</table>
487<a name="d0" doxytag="PVLogger::Init"></a><p>
488<table width="100%" cellpadding="2" cellspacing="0" border="0">
489  <tr>
490    <td class="md">
491      <table cellpadding="0" cellspacing="0" border="0">
492        <tr>
493          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::Init </td>
494          <td class="md" valign="top">(&nbsp;</td>
495          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
496          <td class="md" valign="top">)&nbsp;</td>
497          <td class="md" nowrap><code> [static]</code></td>
498        </tr>
499
500      </table>
501    </td>
502  </tr>
503</table>
504<table cellspacing=5 cellpadding=0 border=0>
505  <tr>
506    <td>
507      &nbsp;
508    </td>
509    <td>
510
511<p>
512PVLogger 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>
513<table border=0 cellspacing=2 cellpadding=0>
514<tr><td valign=top><em>leaves</em>&nbsp;</td><td>
515 if out of memory </td></tr>
516</table>
517</dl>    </td>
518  </tr>
519</table>
520<a name="a8" doxytag="PVLogger::IsActive"></a><p>
521<table width="100%" cellpadding="2" cellspacing="0" border="0">
522  <tr>
523    <td class="md">
524      <table cellpadding="0" cellspacing="0" border="0">
525        <tr>
526          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF bool PVLogger::IsActive </td>
527          <td class="md" valign="top">(&nbsp;</td>
528          <td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td>
529          <td class="mdname1" valign="top" nowrap>&nbsp; <em>level</em>          </td>
530          <td class="md" valign="top">)&nbsp;</td>
531          <td class="md" nowrap></td>
532        </tr>
533
534      </table>
535    </td>
536  </tr>
537</table>
538<table cellspacing=5 cellpadding=0 border=0>
539  <tr>
540    <td>
541      &nbsp;
542    </td>
543    <td>
544
545<p>
546This 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>
547<li>All logging is disabled at this logging control point</ul>
548If all the log levels, leading upto the root log point are uninitialized<ul>
549<li>If the log level of the incoming message is LESS THAN that of the active log level of the logging control point.</ul>
550<dl compact><dt><b>Returns: </b></dt><dd>
551BOOL </dl>    </td>
552  </tr>
553</table>
554<a name="a12" doxytag="PVLogger::LogMsgBuffers"></a><p>
555<table width="100%" cellpadding="2" cellspacing="0" border="0">
556  <tr>
557    <td class="md">
558      <table cellpadding="0" cellspacing="0" border="0">
559        <tr>
560          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::LogMsgBuffers </td>
561          <td class="md" valign="top">(&nbsp;</td>
562          <td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s1">message_id_type</a>&nbsp;</td>
563          <td class="mdname" nowrap>&nbsp; <em>msgID</em>, </td>
564        </tr>
565        <tr>
566          <td></td>
567          <td></td>
568          <td class="md" nowrap>int32&nbsp;</td>
569          <td class="mdname" nowrap>&nbsp; <em>numPairs</em>, </td>
570        </tr>
571        <tr>
572          <td></td>
573          <td></td>
574          <td class="md" nowrap>...&nbsp;</td>
575          <td class="mdname" nowrap>&nbsp;</td>
576        </tr>
577        <tr>
578          <td></td>
579          <td class="md">)&nbsp;</td>
580          <td class="md" colspan="2"></td>
581        </tr>
582
583      </table>
584    </td>
585  </tr>
586</table>
587<table cellspacing=5 cellpadding=0 border=0>
588  <tr>
589    <td>
590      &nbsp;
591    </td>
592    <td>
593
594<p>
595This 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>
596<table border=0 cellspacing=2 cellpadding=0>
597<tr><td valign=top><em>msgID</em>&nbsp;</td><td>
598Message ID, that is unique to a message </td></tr>
599<tr><td valign=top><em>numPairs</em>&nbsp;</td><td>
600Number of (ptr_len, ptr) pairs </td></tr>
601<tr><td valign=top><em>arguments</em>&nbsp;</td><td>
602Variable list of arguments</td></tr>
603</table>
604</dl><dl compact><dt><b>Returns: </b></dt><dd>
605NONE </dl>    </td>
606  </tr>
607</table>
608<a name="a10" doxytag="PVLogger::LogMsgBuffersV"></a><p>
609<table width="100%" cellpadding="2" cellspacing="0" border="0">
610  <tr>
611    <td class="md">
612      <table cellpadding="0" cellspacing="0" border="0">
613        <tr>
614          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::LogMsgBuffersV </td>
615          <td class="md" valign="top">(&nbsp;</td>
616          <td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s1">message_id_type</a>&nbsp;</td>
617          <td class="mdname" nowrap>&nbsp; <em>msgID</em>, </td>
618        </tr>
619        <tr>
620          <td></td>
621          <td></td>
622          <td class="md" nowrap>int32&nbsp;</td>
623          <td class="mdname" nowrap>&nbsp; <em>numPairs</em>, </td>
624        </tr>
625        <tr>
626          <td></td>
627          <td></td>
628          <td class="md" nowrap>va_list&nbsp;</td>
629          <td class="mdname" nowrap>&nbsp; <em>arguments</em></td>
630        </tr>
631        <tr>
632          <td></td>
633          <td class="md">)&nbsp;</td>
634          <td class="md" colspan="2"></td>
635        </tr>
636
637      </table>
638    </td>
639  </tr>
640</table>
641<table cellspacing=5 cellpadding=0 border=0>
642  <tr>
643    <td>
644      &nbsp;
645    </td>
646    <td>
647
648<p>
649This 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>
650<table border=0 cellspacing=2 cellpadding=0>
651<tr><td valign=top><em>msgID</em>&nbsp;</td><td>
652Message ID, that is unique to a message </td></tr>
653<tr><td valign=top><em>numPairs</em>&nbsp;</td><td>
654Number of (ptr_len, ptr) pairs </td></tr>
655<tr><td valign=top><em>arguments</em>&nbsp;</td><td>
656Variable list of arguments</td></tr>
657</table>
658</dl><dl compact><dt><b>Returns: </b></dt><dd>
659NONE </dl>    </td>
660  </tr>
661</table>
662<a name="a11" doxytag="PVLogger::LogMsgString"></a><p>
663<table width="100%" cellpadding="2" cellspacing="0" border="0">
664  <tr>
665    <td class="md">
666      <table cellpadding="0" cellspacing="0" border="0">
667        <tr>
668          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::LogMsgString </td>
669          <td class="md" valign="top">(&nbsp;</td>
670          <td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s1">message_id_type</a>&nbsp;</td>
671          <td class="mdname" nowrap>&nbsp; <em>msgID</em>, </td>
672        </tr>
673        <tr>
674          <td></td>
675          <td></td>
676          <td class="md" nowrap>const char *&nbsp;</td>
677          <td class="mdname" nowrap>&nbsp; <em>fmt</em>, </td>
678        </tr>
679        <tr>
680          <td></td>
681          <td></td>
682          <td class="md" nowrap>...&nbsp;</td>
683          <td class="mdname" nowrap>&nbsp;</td>
684        </tr>
685        <tr>
686          <td></td>
687          <td class="md">)&nbsp;</td>
688          <td class="md" colspan="2"></td>
689        </tr>
690
691      </table>
692    </td>
693  </tr>
694</table>
695<table cellspacing=5 cellpadding=0 border=0>
696  <tr>
697    <td>
698      &nbsp;
699    </td>
700    <td>
701
702<p>
703This 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>
704<table border=0 cellspacing=2 cellpadding=0>
705<tr><td valign=top><em>msgID</em>&nbsp;</td><td>
706Message ID, that is unique to a message </td></tr>
707<tr><td valign=top><em>fmt</em>&nbsp;</td><td>
708format string, similar to one taken by printf </td></tr>
709<tr><td valign=top><em>arguments</em>&nbsp;</td><td>
710Variable list of arguments</td></tr>
711</table>
712</dl><dl compact><dt><b>Returns: </b></dt><dd>
713NONE </dl>    </td>
714  </tr>
715</table>
716<a name="a9" doxytag="PVLogger::LogMsgStringV"></a><p>
717<table width="100%" cellpadding="2" cellspacing="0" border="0">
718  <tr>
719    <td class="md">
720      <table cellpadding="0" cellspacing="0" border="0">
721        <tr>
722          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::LogMsgStringV </td>
723          <td class="md" valign="top">(&nbsp;</td>
724          <td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s1">message_id_type</a>&nbsp;</td>
725          <td class="mdname" nowrap>&nbsp; <em>msgID</em>, </td>
726        </tr>
727        <tr>
728          <td></td>
729          <td></td>
730          <td class="md" nowrap>const char *&nbsp;</td>
731          <td class="mdname" nowrap>&nbsp; <em>fmt</em>, </td>
732        </tr>
733        <tr>
734          <td></td>
735          <td></td>
736          <td class="md" nowrap>va_list&nbsp;</td>
737          <td class="mdname" nowrap>&nbsp; <em>arguments</em></td>
738        </tr>
739        <tr>
740          <td></td>
741          <td class="md">)&nbsp;</td>
742          <td class="md" colspan="2"></td>
743        </tr>
744
745      </table>
746    </td>
747  </tr>
748</table>
749<table cellspacing=5 cellpadding=0 border=0>
750  <tr>
751    <td>
752      &nbsp;
753    </td>
754    <td>
755
756<p>
757This 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>
758<table border=0 cellspacing=2 cellpadding=0>
759<tr><td valign=top><em>msgID</em>&nbsp;</td><td>
760Message ID, that is unique to a message </td></tr>
761<tr><td valign=top><em>fmt</em>&nbsp;</td><td>
762format string, similar to one taken by printf </td></tr>
763<tr><td valign=top><em>arguments</em>&nbsp;</td><td>
764Variable list of arguments</td></tr>
765</table>
766</dl><dl compact><dt><b>Returns: </b></dt><dd>
767NONE </dl>    </td>
768  </tr>
769</table>
770<a name="a5" doxytag="PVLogger::RemoveAppender"></a><p>
771<table width="100%" cellpadding="2" cellspacing="0" border="0">
772  <tr>
773    <td class="md">
774      <table cellpadding="0" cellspacing="0" border="0">
775        <tr>
776          <td class="md" nowrap valign="top"> void PVLogger::RemoveAppender </td>
777          <td class="md" valign="top">(&nbsp;</td>
778          <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>
779          <td class="mdname1" valign="top" nowrap>&nbsp; <em>appender</em>          </td>
780          <td class="md" valign="top">)&nbsp;</td>
781          <td class="md" nowrap><code> [inline]</code></td>
782        </tr>
783
784      </table>
785    </td>
786  </tr>
787</table>
788<table cellspacing=5 cellpadding=0 border=0>
789  <tr>
790    <td>
791      &nbsp;
792    </td>
793    <td>
794
795<p>
796This 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>
797<table border=0 cellspacing=2 cellpadding=0>
798<tr><td valign=top><em>appender</em>&nbsp;</td><td>
799pointer to the appender to delete</td></tr>
800</table>
801</dl><dl compact><dt><b>Returns: </b></dt><dd>
802NONE </dl>    </td>
803  </tr>
804</table>
805<a name="a0" doxytag="PVLogger::SetLogLevel"></a><p>
806<table width="100%" cellpadding="2" cellspacing="0" border="0">
807  <tr>
808    <td class="md">
809      <table cellpadding="0" cellspacing="0" border="0">
810        <tr>
811          <td class="md" nowrap valign="top"> void PVLogger::SetLogLevel </td>
812          <td class="md" valign="top">(&nbsp;</td>
813          <td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td>
814          <td class="mdname1" valign="top" nowrap>&nbsp; <em>level</em>          </td>
815          <td class="md" valign="top">)&nbsp;</td>
816          <td class="md" nowrap><code> [inline]</code></td>
817        </tr>
818
819      </table>
820    </td>
821  </tr>
822</table>
823<table cellspacing=5 cellpadding=0 border=0>
824  <tr>
825    <td>
826      &nbsp;
827    </td>
828    <td>
829
830<p>
831This method is used to set the log level of a control point.<dl compact><dt><b>Parameters: </b></dt><dd>
832<table border=0 cellspacing=2 cellpadding=0>
833<tr><td valign=top><em>level</em>&nbsp;</td><td>
834log level associated with the logging control point</td></tr>
835</table>
836</dl><dl compact><dt><b>Returns: </b></dt><dd>
837NONE </dl>    </td>
838  </tr>
839</table>
840<a name="a1" doxytag="PVLogger::SetLogLevelAndPropagate"></a><p>
841<table width="100%" cellpadding="2" cellspacing="0" border="0">
842  <tr>
843    <td class="md">
844      <table cellpadding="0" cellspacing="0" border="0">
845        <tr>
846          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVLogger::SetLogLevelAndPropagate </td>
847          <td class="md" valign="top">(&nbsp;</td>
848          <td class="md" nowrap valign="top"><a class="el" href="classPVLogger.html#s0">log_level_type</a>&nbsp;</td>
849          <td class="mdname1" valign="top" nowrap>&nbsp; <em>level</em>          </td>
850          <td class="md" valign="top">)&nbsp;</td>
851          <td class="md" nowrap></td>
852        </tr>
853
854      </table>
855    </td>
856  </tr>
857</table>
858<table cellspacing=5 cellpadding=0 border=0>
859  <tr>
860    <td>
861      &nbsp;
862    </td>
863    <td>
864
865<p>
866This 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>
867<table border=0 cellspacing=2 cellpadding=0>
868<tr><td valign=top><em>level</em>&nbsp;</td><td>
869log level associated with the logging control point</td></tr>
870</table>
871</dl><dl compact><dt><b>Returns: </b></dt><dd>
872NONE </dl>    </td>
873  </tr>
874</table>
875<a name="b0" doxytag="PVLogger::SetParent"></a><p>
876<table width="100%" cellpadding="2" cellspacing="0" border="0">
877  <tr>
878    <td class="md">
879      <table cellpadding="0" cellspacing="0" border="0">
880        <tr>
881          <td class="md" nowrap valign="top"> void PVLogger::SetParent </td>
882          <td class="md" valign="top">(&nbsp;</td>
883          <td class="md" nowrap valign="top">PVLogger *&nbsp;</td>
884          <td class="mdname1" valign="top" nowrap>&nbsp; <em>parentLogger</em>          </td>
885          <td class="md" valign="top">)&nbsp;</td>
886          <td class="md" nowrap><code> [inline, protected]</code></td>
887        </tr>
888
889      </table>
890    </td>
891  </tr>
892</table>
893<table cellspacing=5 cellpadding=0 border=0>
894  <tr>
895    <td>
896      &nbsp;
897    </td>
898    <td>
899
900<p>
901    </td>
902  </tr>
903</table>
904<hr><h2>Friends And Related Function Documentation</h2>
905<a name="l0" doxytag="PVLogger::PVLoggerRegistry"></a><p>
906<table width="100%" cellpadding="2" cellspacing="0" border="0">
907  <tr>
908    <td class="md">
909      <table cellpadding="0" cellspacing="0" border="0">
910        <tr>
911          <td class="md" nowrap valign="top"> friend class PVLoggerRegistry<code> [friend]</code>
912      </table>
913    </td>
914  </tr>
915</table>
916<table cellspacing=5 cellpadding=0 border=0>
917  <tr>
918    <td>
919      &nbsp;
920    </td>
921    <td>
922
923<p>
924    </td>
925  </tr>
926</table>
927<hr>The documentation for this class was generated from the following file:<ul>
928<li><a class="el" href="pvlogger_8h-source.html">pvlogger.h</a></ul>
929<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
930<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
931</small></address>
932</body>
933</html>
934