Package com.wavefront.common
Class SamplingLogger
- java.lang.Object
-
- java.util.logging.Logger
-
- com.wavefront.common.DelegatingLogger
-
- com.wavefront.common.SamplingLogger
-
public class SamplingLogger extends DelegatingLogger
A sampling logger that can be enabled and disabled dynamically by setting its level toLevel.FINEST
.- Author:
- [email protected]
-
-
Field Summary
-
Fields inherited from class com.wavefront.common.DelegatingLogger
delegate
-
Fields inherited from class java.util.logging.Logger
global, GLOBAL_LOGGER_NAME
-
-
Constructor Summary
Constructors Constructor Description SamplingLogger(com.wavefront.data.ReportableEntityType entityType, Logger delegate, double samplingRate, boolean alwaysActive, Consumer<String> statusChangeConsumer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isLoggable(Level level)
void
log(Level level, String message)
Checks the logger state and writes the message in the log if appropriate.-
Methods inherited from class com.wavefront.common.DelegatingLogger
log
-
Methods inherited from class java.util.logging.Logger
addHandler, config, config, entering, entering, entering, exiting, exiting, fine, fine, finer, finer, finest, finest, getAnonymousLogger, getAnonymousLogger, getFilter, getGlobal, getHandlers, getLevel, getLogger, getLogger, getName, getParent, getResourceBundle, getResourceBundleName, getUseParentHandlers, info, info, log, log, log, log, log, logp, logp, logp, logp, logp, logp, logrb, logrb, logrb, logrb, logrb, logrb, logrb, logrb, removeHandler, setFilter, setLevel, setParent, setResourceBundle, setUseParentHandlers, severe, severe, throwing, warning, warning
-
-
-
-
Constructor Detail
-
SamplingLogger
public SamplingLogger(com.wavefront.data.ReportableEntityType entityType, Logger delegate, double samplingRate, boolean alwaysActive, @Nullable Consumer<String> statusChangeConsumer)
- Parameters:
entityType
- entity type (used in info messages only).delegate
- delegate logger name.samplingRate
- sampling rate for logging [0..1].alwaysActive
- whether this logger is always active regardless of currently set log level.
-
-
Method Detail
-
isLoggable
public boolean isLoggable(Level level)
- Overrides:
isLoggable
in classLogger
-
log
public void log(Level level, String message)
Checks the logger state and writes the message in the log if appropriate. We log valid points only if the system property wavefront.proxy.logpoints is true (for legacy reasons) or the delegate logger's log level is set to "ALL" (i.e. if Level.FINEST is considered loggable). This is done to prevent introducing additional overhead into the critical path, as well as prevent accidentally logging points into the main log. Additionally, honor sample rate limit, if set.- Specified by:
log
in classDelegatingLogger
- Parameters:
level
- log level.message
- string to write to log.
-
-