[ Index ]
 

Code source de vtiger CRM 5.0.2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/log4php/ -> LoggerNDC.php (sommaire)

log4php is a PHP port of the log4j java logging package. <p>This framework is based on log4j (see {@link http://jakarta.apache.org/log4j log4j} for details).</p> <p>Design, strategies and part of the methods documentation are developed by log4j team (Ceki Gülcü as log4j project founder and {@link http://jakarta.apache.org/log4j/docs/contributors.html contributors}).</p>

Poids: 240 lignes (8 kb)
Inclus ou requis:0 fois
Référencé: 0 fois
Nécessite: 1 fichier
 log4php/LoggerLog.php

Définit 1 class

LoggerNDC:: (8 méthodes):
  clear()
  get()
  getDepth()
  pop()
  peek()
  push()
  remove()
  setMaxDepth()


Classe: LoggerNDC  - X-Ref

The NDC class implements <i>nested diagnostic contexts</i> as
defined by Neil Harrison in the article "Patterns for Logging
Diagnostic Messages" part of the book "<i>Pattern Languages of
Program Design 3</i>" edited by Martin et al.

<p>A Nested Diagnostic Context, or NDC in short, is an instrument
to distinguish interleaved log output from different sources. Log
output is typically interleaved when a server handles multiple
clients near-simultaneously.

<p>Interleaved log output can still be meaningful if each log entry
from different contexts had a distinctive stamp. This is where NDCs
come into play.

<p><i><b>Note that NDCs are managed on a per thread
basis</b></i>. NDC operations such as {@link push()}, {@link pop()},
{@link clear()}, {@link getDepth()} and {@link setMaxDepth()}
affect the NDC of the <i>current</i> thread only. NDCs of other
threads remain unaffected.

<p>For example, a servlet can build a per client request NDC
consisting the clients host name and other information contained in
the the request. <i>Cookies</i> are another source of distinctive
information. To build an NDC one uses the {@link push()}
operation.</p>

Simply put,

- Contexts can be nested.
- When entering a context, call
<code>LoggerNDC::push()</code>
As a side effect, if there is no nested diagnostic context for the
current thread, this method will create it.
- When leaving a context, call
<code>LoggerNDC::pop()</code>
- <b>When exiting a thread make sure to call {@link remove()}</b>

<p>There is no penalty for forgetting to match each
<code>push</code> operation with a corresponding <code>pop</code>,
except the obvious mismatch between the real application context
and the context set in the NDC.</p>

<p>If configured to do so, {@link LoggerPatternLayout} and {@link LoggerLayoutTTCC}
instances automatically retrieve the nested diagnostic
context for the current thread without any user intervention.
Hence, even if a servlet is serving multiple clients
simultaneously, the logs emanating from the same code (belonging to
the same category) can still be distinguished because each client
request will have a different NDC tag.</p>


clear()   X-Ref
Clear any nested diagnostic information if any. This method is
useful in cases where the same thread can be potentially used
over and over in different unrelated contexts.

<p>This method is equivalent to calling the {@link setMaxDepth()}
method with a zero <var>maxDepth</var> argument.


get()   X-Ref
Never use this method directly, use the {@link LoggerLoggingEvent::getNDC()} method instead.

return: array

getDepth()   X-Ref
Get the current nesting depth of this diagnostic context.

return: integer

pop()   X-Ref
Clients should call this method before leaving a diagnostic
context.

<p>The returned value is the value that was pushed last. If no
context is available, then the empty string "" is returned.</p>

return: string The innermost diagnostic context.

peek()   X-Ref
Looks at the last diagnostic context at the top of this NDC
without removing it.

<p>The returned value is the value that was pushed last. If no
context is available, then the empty string "" is returned.</p>
return: string The innermost diagnostic context.

push($message)   X-Ref
Push new diagnostic context information for the current thread.

<p>The contents of the <var>message</var> parameter is
determined solely by the client.

param: string $message The new diagnostic context information.

remove()   X-Ref
Remove the diagnostic context for this thread.


setMaxDepth($maxDepth)   X-Ref
Set maximum depth of this diagnostic context. If the current
depth is smaller or equal to <var>maxDepth</var>, then no
action is taken.

<p>This method is a convenient alternative to multiple
{@link pop()} calls. Moreover, it is often the case that at
the end of complex call sequences, the depth of the NDC is
unpredictable. The {@link setMaxDepth()} method circumvents
this problem.

param: integer $maxDepth



Généré le : Sun Feb 25 10:22:19 2007 par Balluche grâce à PHPXref 0.7