Package org.apache.cassandra.utils
Class NoSpamLogger
java.lang.Object
org.apache.cassandra.utils.NoSpamLogger
Logging that limits each log statement to firing based on time since the statement last fired.
Every logger has a unique timer per statement. Minimum time between logging is set for each statement
the first time it is used and a subsequent attempt to request that statement with a different minimum time will
result in the original time being used. No warning is provided if there is a mismatch.
If the statement is cached and used to log directly then only a volatile read will be required in the common case.
If the Logger is cached then there is a single concurrent hash map lookup + the volatile read.
If neither the logger nor the statement is cached then it is two concurrent hash map lookups + the volatile read.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic enumLevels for programmatically specifying the severity of a log statementclass -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleanstatic NoSpamLoggergetStatement(String s, long minIntervalNanos) getStatement(String s, long minInterval, TimeUnit unit) getStatement(String key, String s) getStatement(String key, String s, long minIntervalNanos) getStatement(org.slf4j.Logger logger, String message, long minInterval, TimeUnit unit) booleanbooleanbooleanlog(NoSpamLogger.Level l, String s, long nowNanos, Object... objects) static booleanlog(org.slf4j.Logger logger, NoSpamLogger.Level level, long minInterval, TimeUnit unit, String message, Object... objects) static booleanlog(org.slf4j.Logger logger, NoSpamLogger.Level level, long minInterval, TimeUnit unit, String message, Supplier<Object[]> objects) static booleanlog(org.slf4j.Logger logger, NoSpamLogger.Level level, String key, long minInterval, TimeUnit unit, long nowNanos, String message, Object... objects) static booleanlog(org.slf4j.Logger logger, NoSpamLogger.Level level, String key, long minInterval, TimeUnit unit, long nowNanos, String message, Supplier<Object[]> objects) static booleanlog(org.slf4j.Logger logger, NoSpamLogger.Level level, String key, long minInterval, TimeUnit unit, String message, Object... objects) static booleanlog(org.slf4j.Logger logger, NoSpamLogger.Level level, String key, long minInterval, TimeUnit unit, String message, Supplier<Object[]> objects) static voidunsafeSetClock(NoSpamLogger.Clock clock) booleanboolean
-
Method Details
-
unsafeSetClock
-
getLogger
-
log
public static boolean log(org.slf4j.Logger logger, NoSpamLogger.Level level, long minInterval, TimeUnit unit, String message, Object... objects) -
log
public static boolean log(org.slf4j.Logger logger, NoSpamLogger.Level level, String key, long minInterval, TimeUnit unit, String message, Object... objects) -
log
public static boolean log(org.slf4j.Logger logger, NoSpamLogger.Level level, String key, long minInterval, TimeUnit unit, long nowNanos, String message, Object... objects) -
log
public static boolean log(org.slf4j.Logger logger, NoSpamLogger.Level level, long minInterval, TimeUnit unit, String message, Supplier<Object[]> objects) -
log
-
log
-
getStatement
public static NoSpamLogger.NoSpamLogStatement getStatement(org.slf4j.Logger logger, String message, long minInterval, TimeUnit unit) -
info
-
info
-
warn
-
warn
-
error
-
error
-
log
-
getStatement
-
getStatement
-
getStatement
-
getStatement
-
getStatement
-