Maybe implement an AutoClosableTimer that implements the AutoClosable
interface [1]? I often take use of the using(something){} directive in C#
and find it quite readable.[1] https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html On 2 May 2017 1:59 p.m., "Mikael Ståldal" <[email protected]> wrote: > As far as I can see, the Timer class is in test only? > > On Tue, May 2, 2017 at 1:58 PM, Mikael Ståldal <[email protected]> > wrote: > > > Why is this class duplicated? Can't we remove the one in log4j-core? > > > > On Tue, May 2, 2017 at 4:59 AM, Ralph Goers <[email protected]> > > wrote: > > > >> We have had this since I started log4j. It is in both core and api as > >> Timer. > >> > >> You can do > >> > >> Timer timer = new Timer(“Step1”); > >> …. > >> …. > >> timer.start() > >> … > >> … > >> … > >> timer.stop(); > >> LOGGERr.debug(timer); > >> > >> I had a version of this at one time that automatically logged when stop > >> was called. That could easily be done by doing: > >> > >> Timer timer = new Timer(“Step 1”) { > >> public void stop() { > >> super(); > >> LOGGER.debug(this); > >> } > >> > >> Or we could make another version that does this. It might make sense to > >> have start and stop also return this so you could do: > >> > >> Timer timer = new Timer(“Step 1).start(); > >> …. > >> …. > >> Logger.debug(timer.stop()); > >> > >> This change would be backwards compatible so we could do that without > any > >> problem. > >> > >> Note that Timer also supports pause() and resume() if you want to > >> eliminate the time spent in called methods. > >> > >> Ralph > >> > >> > On May 1, 2017, at 6:56 PM, Gary Gregory <[email protected]> > >> wrote: > >> > > >> > Hi All: > >> > > >> > I find myself writing a lot of methods like: > >> > > >> > LOGGER.debug("Doing things with {}", foo); > >> > final StopWatch watch = StopWatch.createStarted(); > >> > // Do this > >> > // Do that > >> > // And then some > >> > watch.stop(); > >> > LOGGER.debug("Did foo things in {}", watch); > >> > > >> > Where the stop watch is Apache Commons Lang's > >> > https://commons.apache.org/proper/commons-lang/apidocs/org/ > >> apache/commons/lang3/time/StopWatch.html > >> > > >> > Any thoughts on making things less verbose? > >> > > >> > Making watch.stop() return "this" would save a line but I'd have to > >> clone > >> > StopWatch to do that which I do not mind. > >> > > >> > Gary > >> > > >> > -- > >> > E-Mail: [email protected] | [email protected] > >> > Java Persistence with Hibernate, Second Edition > >> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl? > >> ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&link > >> Code=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> > >> > > >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a=1617290459> > >> > JUnit in Action, Second Edition > >> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl? > >> ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&link > >> Code=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> > >> > > >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a=1935182021> > >> > Spring Batch in Action > >> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl? > >> ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&link > >> Code=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Bli > >> nk_id%7D%7D%22%3ESpring+Batch+in+Action> > >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a=1935182951> > >> > Blog: http://garygregory.wordpress.com > >> > Home: http://garygregory.com/ > >> > Tweet! http://twitter.com/GaryGregory > >> > >> > >> > > > > > > -- > > [image: MagineTV] > > > > *Mikael Ståldal* > > Senior software developer > > > > *Magine TV* > > [email protected] > > Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > > > > Privileged and/or Confidential Information may be contained in this > > message. If you are not the addressee indicated in this message > > (or responsible for delivery of the message to such a person), you may > not > > copy or deliver this message to anyone. In such case, > > you should destroy this message and kindly notify the sender by reply > > email. > > > > > > -- > [image: MagineTV] > > *Mikael Ståldal* > Senior software developer > > *Magine TV* > [email protected] > Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > > Privileged and/or Confidential Information may be contained in this > message. If you are not the addressee indicated in this message > (or responsible for delivery of the message to such a person), you may not > copy or deliver this message to anyone. In such case, > you should destroy this message and kindly notify the sender by reply > email. >
