Flogger. Very nice... or painful. On Jul 29, 2013 3:48 PM, "Gary Gregory" <[email protected]> wrote:
> On Mon, Jul 29, 2013 at 4:39 PM, Nick Williams < > [email protected]> wrote: > >> I'm working on LOG4J2-242 to add the ability to log fluently. It's going >> to work something like this: >> >> interface Logger: >> + MessageBuilder trace(); >> + MessageBuilder debug(); >> + MessageBuilder info(); >> + MessageBuilder warn(); >> + MessageBuilder error(); >> + MessageBuilder fatal(); >> + MessageBuilder log(Level); >> >> + interface MessageBuilder: >> message(String); >> message(Object); >> message(String, Object...); >> marker(Marker); >> exception(Throwable); >> argument(Object); >> arguments(Object...); >> log(); >> >> Bruce (the requester) had suggested adding the methods that return >> MessageBuilder to a different interface (as opposed to Logger) to keep from >> cluttering the Logger API. The way I see it our options are: >> >> - Create a FluentLogger interface to house these methods. I don't like >> this option because A) it complicates things significantly, B) it makes >> users have to call a different method on LogManager (getFluentLogger) to >> get a FluentLogger, and C) it means users have to have a Logger and a >> FluentLogger if they want to use both APIs. >> >> - Create a FluentLogger interface that extends Logger. This option is >> much better. It avoids cluttering the Logger API if that's all someone >> wants to use, it doesn't require someone to have a Logger and FluentLogger >> if they want to use both APIs, and it doesn't complicate the implementation >> significantly (all implementations can just implement FluentLogger). It >> does still mean LogManager (and related classes/interfaces) need getLogger >> and getFluentLogger methods, which I don't necessarily like. >> >> - Just add these methods to Logger, which is what I intended to do from >> the get-go and is what I still think is the best option. >> > > - and there's option 4: Don't do it. > > At first glance, adding these methods to Logger looks confusing and > cluttered. The less messy solution seems to me FLogger extends Logger. > > Gary > > >> >> I'm going to proceed with #3 for now, but if someone has a strong opinion >> otherwise please voice it so that we can discuss before I complete this. >> >> Nick >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > -- > E-Mail: [email protected] | [email protected] > Java Persistence with Hibernate, Second > Edition<http://www.manning.com/bauer3/> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > Spring Batch in Action <http://www.manning.com/templier/> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory >
