public void log ( Level level , T key , long timeout , Object ... args ) { SuppressCache . Value val = cache . putIfAbsent ( key , timeout ) ; if ( val == null ) // key is present and hasn't expired return ; String message = val . count ( ) == 1 ? String . format ( message_format , args ) : String . format ( message_format , args ) + " " + String . format ( suppress_format , val . count ( ) , key , val . age ( ) ) ; switch ( level ) { case error : log . error ( message ) ; break ; case warn : log . warn ( message ) ; break ; case trace : log . trace ( message ) ; break ; } }
Logs a message from a given member if is hasn t been logged for timeout ms