@ProviderType
public interface RequestProgressTracker
RequestProgressTracker
class provides the functionality to
track the progress of request processing. Instances of this class are
provided through the
SlingHttpServletRequest.getRequestProgressTracker()
method.
The following functionality is provided:
log(String)
and log(String, Object...)
methods.
startTimer(String)
,
logTimer(String)
and logTimer(String, String, Object...)
methods.
dump(PrintWriter)
method.
getMessages()
method.
Tracking Request Processing
As the request being processed, certain steps may be tracked by calling
either of the log
methods. A tracking entry consists of a time
stamp managed by this class and a tracking message noting the actual step
being tracked.
Timing Processing Steps
Certain steps during request processing may need to be timed in that the time required for processing should be recorded. Instances of this class maintain a map of named timers. Each timer is started (initialized or reset) by calling thestartTimer(String)
method. This method just records the
starting time of the named timer and adds a tracking entry with the timer
name as the message.
To record the number of milliseconds elapsed since a timer has been started,
the logTimer(String)
or logTimer(String, String, Object...)
method may be called. This method logs a tracking entry with a message
consisting of the name of the timer and the number of milliseconds elapsed
since the timer was last started
. The
logTimer
methods may be called multiple times to record
several timed steps.
Calling the startTimer(String)
method with the name of timer which
already exists, resets the start time of the named timer to the current
system time.
Retrieving Tracking Entries
The dump(PrintWriter)
method may be used to write the tracking
entries to the given PrintWriter
to for example log them in a
HTML comment. Alternatively the tracking entries may be retrieved as an
iterator of messages through the getMessages()
method. The
formatting of the tracking entries is implementation specific.
Modifier and Type | Method and Description |
---|---|
void |
done()
Call this when done processing the request - only the first call of this
method is processed, all further calls to this method are ignored.
|
void |
dump(PrintWriter writer)
Dumps the process timer entries to the given writer, one entry per line.
|
Iterator<String> |
getMessages()
Returns an
Iterator of tracking entries. |
void |
log(String message)
Creates an entry with the given message
|
void |
log(String format,
Object... args)
Creates an entry with a message constructed from the given
MessageFormat format evaluated using the given formatting
arguments. |
void |
logTimer(String timerName)
Logs an entry with the message set to the name of the timer and the
number of milliseconds elapsed since the timer start.
|
void |
logTimer(String timerName,
String format,
Object... args)
Logs an entry with the message constructed from the given
MessageFormat pattern evaluated using the given arguments
and the number of milliseconds elapsed since the timer start. |
void |
startTimer(String timerName)
Starts a named timer.
|
void log(@Nonnull String message)
message
- The messagevoid log(@Nonnull String format, Object... args)
MessageFormat
format evaluated using the given formatting
arguments.format
- The messageargs
- Arguments for the messagevoid startTimer(@Nonnull String timerName)
timerName
- the name of the timervoid logTimer(@Nonnull String timerName)
timerName
- the name of the timervoid logTimer(@Nonnull String timerName, @Nonnull String format, Object... args)
MessageFormat
pattern evaluated using the given arguments
and the number of milliseconds elapsed since the timer start.timerName
- the name of the timerformat
- The messageargs
- Arguments for the message@CheckForNull Iterator<String> getMessages()
Iterator
of tracking entries.
If there are no messages null
is returned.null
void dump(@Nonnull PrintWriter writer)
writer
- Writer to dump tovoid done()
Copyright © 2017 The Apache Software Foundation. All rights reserved.