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.
>

Reply via email to