/** * Whether early exit is OK? * * @param logAtInfoToo We want to log at INFO level too * @return {@code true} if log level not even at INFO * or log level is not at least DEBUG as well as {@code logAtInfoToo} is false too * ; false otherwise */ private boolean canExitEarly(boolean logAtInfoToo) { if (!logAtInfoToo) { return !isDebugEnabled(); } else { return !isInfoEnabled(); } }
/** * Shortcut to {@code #start(null, false)} */ public final long start() { if (canExitEarly()) { return -1; } return start(null, false); }
long pstart = PERFLOG.start(PERFLOG.isDebugEnabled() ? ("querying: table=" + tmd.getName() + ", minId=" + minId + ", maxId=" + maxId + ", excludeKeyPatterns=" + excludeKeyPatterns + ", conditions=" + conditions + ", limit=" + limit) dataTotal += data.length(); bdataTotal += bdata == null ? 0 : bdata.length; PERFLOG.end(pstart, 10, "queried: table={} -> id={}, modcount={}, modified={}, data={}, bdata={}", tmd.getName(), id, modcount, modified, (data == null ? 0 : data.length()), (bdata == null ? 0 : bdata.length));
/** * Shortcut to {@link #end(long, long, long, String, Object...)} for * {@code logMessagePrefix} = {@link Long#MAX_VALUE} */ public void end(long start, long logAtDebugIfSlowerThanMs, String logMessagePrefix, Object... arguments) { end(start, logAtDebugIfSlowerThanMs, Long.MAX_VALUE, logMessagePrefix, arguments); }
@Test public void logAtTraceSimpleStartWithInfoLog() { setupTraceLogger(); long start = perfLogger.startForInfoLog(); perfLogger.end(start, -1, "message", "argument"); verifyTraceInteractions(1, false, true); verifyInfoInteractions(2, false); verifyNoMoreInteractions(logger); }
callstack = new Exception("call stack"); pstart = PERFLOG.start(PERFLOG.isDebugEnabled() ? ("querying: table=" + tmd.getName() + ", minId=" + minId + ", maxId=" + maxId + ", excludeKeyPatterns=" + excludeKeyPatterns + ", conditions=" + conditions + ", limit=" + limit + ", sortBy=" + sortBy)
if (isTraceEnabled()) { (Object[]) arguments); } else if ( ( logAtDebugIfSlowerThanMs < 0 || diff > logAtDebugIfSlowerThanMs ) && isDebugEnabled()) {
/** * @return same as {@code canExitEarly(false)} */ private boolean canExitEarly() { return canExitEarly(false); }
@Before public void setup() { MockitoAnnotations.initMocks(this); when(logger.isTraceEnabled()).thenReturn(false); when(logger.isDebugEnabled()).thenReturn(false); when(logger.isInfoEnabled()).thenReturn(false); perfLogger = new PerfLogger(logger); }
long pstart = PERFLOG.start(PERFLOG.isDebugEnabled() ? ("querying: table=" + tmd.getName() + ", minId=" + minId + ", maxId=" + maxId + ", excludeKeyPatterns=" + excludeKeyPatterns + ", conditions=" + conditions + ", limit=" + limit) dataTotal += data.length(); bdataTotal += bdata == null ? 0 : bdata.length; PERFLOG.end(pstart, 10, "queried: table={} -> id={}, modcount={}, modified={}, data={}, bdata={}", tmd.getName(), id, modcount, modified, (data == null ? 0 : data.length()), (bdata == null ? 0 : bdata.length));
/** * Shortcut to {@link #end(long, long, long, String, Object...)} for * {@code logMessagePrefix} = {@link Long#MAX_VALUE} */ public void end(long start, long logAtDebugIfSlowerThanMs, String logMessagePrefix, Object... arguments) { end(start, logAtDebugIfSlowerThanMs, Long.MAX_VALUE, logMessagePrefix, arguments); }
@Test public void logAtTraceMessageStartWithInfoLog() { setupTraceLogger(); long start = perfLogger.startForInfoLog("Start message"); perfLogger.end(start, -1, "message", "argument"); verifyTraceInteractions(2, true, true); verifyInfoInteractions(2, false); verifyNoMoreInteractions(logger); } //end TRACE tests
callstack = new Exception("call stack"); pstart = PERFLOG.start(PERFLOG.isDebugEnabled() ? ("querying: table=" + tmd.getName() + ", minId=" + minId + ", maxId=" + maxId + ", excludeKeyPatterns=" + excludeKeyPatterns + ", conditions=" + conditions + ", limit=" + limit + ", sortBy=" + sortBy)
if (isTraceEnabled()) { (Object[]) arguments); } else if ( ( logAtDebugIfSlowerThanMs < 0 || diff > logAtDebugIfSlowerThanMs ) && isDebugEnabled()) {
/** * @return same as {@code canExitEarly(false)} */ private boolean canExitEarly() { return canExitEarly(false); }
@Before public void setup() { MockitoAnnotations.initMocks(this); when(logger.isTraceEnabled()).thenReturn(false); when(logger.isDebugEnabled()).thenReturn(false); when(logger.isInfoEnabled()).thenReturn(false); perfLogger = new PerfLogger(logger); }
long pstart = PERFLOG.start(PERFLOG.isDebugEnabled() ? ("reading: " + keys) : null); sdMaxRevTime, data, bdata); rows.add(row); PERFLOG.end(pstart, 10, "read: table={}, id={} -> modcount={}, modified={}, data={}, bdata={}", tmd.getName(), id, modcount, modified, (data == null ? 0 : data.length()), (bdata == null ? 0 : bdata.length)); PERFLOG.end(pstart, 10, "read: table={} -> exception={}", tmd.getName(), ex.getMessage());
/** * Shortcut to {@code start(traceMsgOrNull, true)} */ public final long startForInfoLog(String traceMsgOrNull) { if (canExitEarly(true)) { return -1; } return start(traceMsgOrNull, true); }