package com.github.ltsopensource.core.commons.utils; import com.github.ltsopensource.core.logger.Logger; import com.github.ltsopensource.core.logger.LoggerFactory; import com.github.ltsopensource.core.support.SystemClock; /** * @author Robert HG (254963746@qq.com) on 11/1/16. */ public class PeriodUtils { private static final Logger LOGGER = LoggerFactory.getLogger(PeriodUtils.class); private static final ThreadLocal<Period> TL = new ThreadLocal<Period>(); public static void start() { if (!SystemPropertyUtils.isEnablePeriod()) { return; } Period period = new Period(); period.start = SystemClock.now(); TL.set(period); } public static void end(String msg, Object... args) { if (!SystemPropertyUtils.isEnablePeriod()) { return; } Period period = TL.get(); if (period == null) { throw new IllegalStateException("please start first"); } long mills = SystemClock.now() - period.start; TL.remove(); LOGGER.warn("[Period]" + msg + ", mills:{}", args, mills); } private static class Period { private long start; } }