- All Implemented Interfaces:
Serializable
Logging levels for data processing with execution time measurements.
Those levels are used for events that would normally be logged at
Level.FINE
,
but with the possibility to use a slightly higher level if execution time was long.
Different logging levels - SLOWNESS
and SLOWER
- are provided for logging
only the events taking more time than some thresholds. For example, the console could log
only the slowest events, while a file could log all events considered slow.
Every levels defined in this class have a value between the
Level.FINE
and Level.CONFIG
values. Consequently, performance logging are
disabled by default, and enabling them imply enabling configuration logging too. This is
done that way because the configuration typically have a significant impact on performance.
Enabling performance logging
Performance logging can be enabled in various ways. Among others:- The
$JAVA_HOME/lib/logging.properties
file can be edited in order to log messages at theFINE
level, at least for the packages of interest. - The
Logger.setLevel(Level)
can be invoked, together withHandler.setLevel(Level)
on all relevant logging targets (console or file, etc.). - The
MonolineFormatter.install(Logger, Level)
convenience method can be invoked.
- Since:
- 0.3
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final PerformanceLevel
The level for logging only events slower than the ones logged at theSLOWNESS
level.static final PerformanceLevel
The level for logging relatively slow events. -
Method Summary
Modifier and TypeMethodDescriptionstatic Level
forDuration
(long duration, TimeUnit unit) Returns the level to use for logging an event of the given duration.Return the name of this level for the current default locale.long
getMinDuration
(TimeUnit unit) Returns the minimal duration for logging an event at this level.void
setMinDuration
(long duration, TimeUnit unit) Sets the minimal duration for logging an event at this level.
-
Field Details
-
SLOWNESS
The level for logging relatively slow events. By default, only events having an execution time equals or greater than 1 second are logged at this level. However, this threshold can be changed by a call toSLOWNESS.setMinDuration(long, TimeUnit)
.- Since:
- 1.3
-
SLOWER
The level for logging only events slower than the ones logged at theSLOWNESS
level. By default, only events having an execution time equals or greater than 10 seconds are logged at this level. However, this threshold can be changed by a call toSLOWER.setMinDuration(long, TimeUnit)
.
-
-
Method Details
-
forDuration
Returns the level to use for logging an event of the given duration. The method may returnLevel.FINE
,SLOWNESS
orSLOWER
depending on the duration.- Parameters:
duration
- the event duration.unit
- the unit of the given duration value.- Returns:
- the level to use for logging an event of the given duration.
-
getMinDuration
Returns the minimal duration for logging an event at this level.- Parameters:
unit
- the unit in which to express the minimal duration.- Returns:
- the minimal duration in the given unit.
-
setMinDuration
Sets the minimal duration for logging an event at this level. Invoking this method may have an indirect impact of other performance levels:- If the given duration is longer than the duration of slower levels, then the latter are also set to the given duration.
- If the given duration is shorter than the duration of faster levels, then the latter are also set to the given duration.
- Parameters:
duration
- the minimal duration.unit
- the unit of the given duration value.- Throws:
IllegalArgumentException
- if the given duration is zero or negative.
-
getLocalizedName
Return the name of this level for the current default locale.- Overrides:
getLocalizedName
in classLevel
- Returns:
- name of this level for the current locale.
- Since:
- 1.2
-