Package jetbrains.buildServer.log
Class ThrottleLogger
- java.lang.Object
-
- jetbrains.buildServer.log.ThrottleLogger
-
public class ThrottleLogger extends java.lang.Object
Logger that will repeat the same message not more than once per defined interval. Messages are stored in WeakHashMap as keys. This means that throttling might not actually work if full GC is run. This is a trade-off from storing hard references to messages and always remembering them for the full hour so that memory can be freed if java needs it.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ThrottleLogger.JBDiagnosticLoggerAdapter
Direct link to #com.intellij.openapi.diagnostic.Loggerstatic interface
ThrottleLogger.LoggerAdapter
static class
ThrottleLogger.LogLevel
-
Field Summary
Fields Modifier and Type Field Description static long
LIMIT_UNLIMITED
static long
TIME_1_HOUR
static long
TIME_1_MIN
static long
TIME_30_SEC
static long
TIME_5_MINS
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
all(java.lang.String message, java.lang.Object... args)
void
debug(java.lang.String message, java.lang.Object... args)
void
error(java.lang.String message, java.lang.Object... args)
void
fatal(java.lang.String message, java.lang.Object... args)
static ThrottleLogger
get1HrLogger(java.lang.Class<?> aClass)
static ThrottleLogger
get1MinLLogger(java.lang.Class<?> aClass)
static ThrottleLogger
get1MinLogger(java.lang.Class<?> aClass)
static ThrottleLogger
get5MinLLogger(java.lang.Class<?> aClass)
static ThrottleLogger
get5MinLogger(java.lang.Class<?> aClass)
static ThrottleLogger
get5MinLogger(java.lang.String category)
static ThrottleLogger
getLLogger(java.lang.Class<?> aClass)
Logs duplicate messages with lower priority instead of just ignoring, with 5 minutes throttling.static ThrottleLogger
getLLogger(java.lang.Class<?> aClass, long timeLimitNanos)
Logs duplicate messages with lower priority instead of just ignoring them.static ThrottleLogger
getLogger(java.lang.Class<?> aClass)
static ThrottleLogger
getLogger(java.lang.Class<?> aClass, long timeLimitNanos)
static ThrottleLogger
getLogger(java.lang.Class<?> aClass, long timeLimitNanos, boolean lowerLevel)
static ThrottleLogger
getLogger(java.lang.Class<?> aClass, long timeLimitNanos, long messageLimit, boolean lowerLevel)
static ThrottleLogger
getLogger(java.lang.String category)
static ThrottleLogger
getLogger(java.lang.String category, long timeLimitNanos)
static ThrottleLogger
getLogger(java.lang.String category, long timeLimitNanos, long messageLimit, boolean lowerLevel)
static ThrottleLogger
getLogger(ThrottleLogger.LoggerAdapter loggerAdapter, long timeLimitNanos, long messageLimit, boolean lowerLevel)
static ThrottleLogger
getNoThrottleLogger(java.lang.Class<?> aClass)
static ThrottleLogger
getNoThrottleLogger(java.lang.String category)
void
info(java.lang.String message, java.lang.Object... args)
boolean
isDebugEnabled()
boolean
isInfoEnabled()
boolean
isTraceEnabled()
boolean
isWarnEnabled()
void
log(ThrottleLogger.LogLevel level, java.lang.String message, java.lang.Object... args)
void
trace(java.lang.String message, java.lang.Object... args)
void
warn(java.lang.String message, java.lang.Object... args)
void
warnAndDebugDetails(java.lang.String message, java.lang.Object... args)
-
-
-
Field Detail
-
TIME_1_HOUR
public static final long TIME_1_HOUR
-
TIME_5_MINS
public static final long TIME_5_MINS
-
TIME_1_MIN
public static final long TIME_1_MIN
-
TIME_30_SEC
public static final long TIME_30_SEC
-
LIMIT_UNLIMITED
public static final long LIMIT_UNLIMITED
- See Also:
- Constant Field Values
-
-
Method Detail
-
getLogger
public static ThrottleLogger getLogger(ThrottleLogger.LoggerAdapter loggerAdapter, long timeLimitNanos, long messageLimit, boolean lowerLevel)
-
getLogger
public static ThrottleLogger getLogger(java.lang.Class<?> aClass, long timeLimitNanos, long messageLimit, boolean lowerLevel)
-
getLogger
public static ThrottleLogger getLogger(java.lang.String category, long timeLimitNanos, long messageLimit, boolean lowerLevel)
-
getLogger
public static ThrottleLogger getLogger(java.lang.Class<?> aClass, long timeLimitNanos)
-
getLogger
public static ThrottleLogger getLogger(java.lang.String category, long timeLimitNanos)
-
getLogger
public static ThrottleLogger getLogger(java.lang.Class<?> aClass, long timeLimitNanos, boolean lowerLevel)
-
getLLogger
public static ThrottleLogger getLLogger(java.lang.Class<?> aClass, long timeLimitNanos)
Logs duplicate messages with lower priority instead of just ignoring them.- Parameters:
aClass
- class used to create the name of the logger.timeLimitNanos
- time period during which same messages will be treated as duplicates.- Returns:
- created logger
-
getNoThrottleLogger
public static ThrottleLogger getNoThrottleLogger(java.lang.Class<?> aClass)
-
getNoThrottleLogger
public static ThrottleLogger getNoThrottleLogger(java.lang.String category)
-
getLogger
public static ThrottleLogger getLogger(java.lang.Class<?> aClass)
-
getLogger
public static ThrottleLogger getLogger(java.lang.String category)
-
get1MinLogger
public static ThrottleLogger get1MinLogger(java.lang.Class<?> aClass)
-
get5MinLogger
public static ThrottleLogger get5MinLogger(java.lang.Class<?> aClass)
-
get5MinLogger
public static ThrottleLogger get5MinLogger(java.lang.String category)
-
get1HrLogger
public static ThrottleLogger get1HrLogger(java.lang.Class<?> aClass)
-
getLLogger
public static ThrottleLogger getLLogger(java.lang.Class<?> aClass)
Logs duplicate messages with lower priority instead of just ignoring, with 5 minutes throttling.- Parameters:
aClass
- class used to create the name of the logger.- Returns:
- created logger
-
get5MinLLogger
public static ThrottleLogger get5MinLLogger(java.lang.Class<?> aClass)
-
get1MinLLogger
public static ThrottleLogger get1MinLLogger(java.lang.Class<?> aClass)
-
warn
public void warn(java.lang.String message, java.lang.Object... args)
-
fatal
public void fatal(java.lang.String message, java.lang.Object... args)
-
error
public void error(java.lang.String message, java.lang.Object... args)
-
info
public void info(java.lang.String message, java.lang.Object... args)
-
debug
public void debug(java.lang.String message, java.lang.Object... args)
-
warnAndDebugDetails
public void warnAndDebugDetails(java.lang.String message, java.lang.Object... args)
-
trace
public void trace(java.lang.String message, java.lang.Object... args)
-
all
public void all(java.lang.String message, java.lang.Object... args)
-
log
public void log(ThrottleLogger.LogLevel level, java.lang.String message, java.lang.Object... args)
-
isDebugEnabled
public boolean isDebugEnabled()
-
isWarnEnabled
public boolean isWarnEnabled()
-
isInfoEnabled
public boolean isInfoEnabled()
-
isTraceEnabled
public boolean isTraceEnabled()
-
-