I think that is a great idea.  Do you want to take a stab at implementing it in 
AbstractLogger?

Ralph


On Oct 4, 2012, at 2:55 PM, Paul Benedict wrote:

> Ralph,
> 
> This is actually a discussion you and I had a while back when I was trying to 
> figure out how to use String.format(). I like the model now of specifying the 
> message class... however...
> 
> It does seem a bit unseemly to instantiate an xxxMessage object that may 
> never get used. I'd rather just pass in the Class<?> and let the logger 
> instantiate it only if it is going to log something. The only downside is 
> then configuring the actual class.
> 
> Thoughts?
> 
> Paul
> 
> On Thu, Oct 4, 2012 at 4:51 PM, Ralph Goers <ralph.go...@dslextreme.com> 
> wrote:
> Yeah - the downside of that wrapper is that it is going to record the file, 
> method and line as that of the error method, not of the caller of the error 
> method.  That is actually why so many methods are already in AbstractLogger 
> (and the Logger interface).  I have no problem with adding more if they make 
> sense.  IMO, the goal of the interface is to make invoking logging simpler.
> 
> However, I don't really care for "formatError" as a name.
> 
> I am assuming that what you are really looking for is a set of methods that 
> use a StringFormattedMessage instead of a ParameterizedMessage.  I'm OK with 
> that but I would want it made clear in the API documentation that they are 
> 5-10 times slower in performing substitution than the existing methods.
> 
> Ralph
> 
> On Oct 4, 2012, at 2:34 PM, Gary Gregory wrote:
> 
>> On Thu, Oct 4, 2012 at 5:10 PM, Ralph Goers <ralph.go...@dslextreme.com> 
>> wrote:
>> One other thing. I would recommend changing your code below to
>> 
>> public void error(final Throwable t, final String format, final Object... 
>> values) {
>>     this.logger.error(new StringFormattedMessage(format, values), t);
>> }
>> 
>> Cool! OK, now I have:
>> 
>>     public void error(final String format, final Throwable t, final 
>> Object... values) {
>>         this.logger.debug(new StringFormattedMessage(format, values), t);
>>     }
>> 
>> 
>> But what about simply providing an API for this pattern? Like:
>> 
>>     this.logger.formatError(format, t, values);
>> 
>> I'm not sure if "formatError" is the best name, but you get the idea.
>> 
>> This would let me get ride of a bunch of boiler plate code!
>> 
>> G
>> 
>> 
>>  
>> 
>> This way String.format() isn't called unless the event is going to be logged.
>> 
>> I'm not sure why your error method is logging at debug.
>> 
>> Ralph
>> 
>> 
>> On Oct 4, 2012, at 11:29 AM, Gary Gregory wrote:
>> 
>>> Hi All:
>>> 
>>> In 2.0-Beta1, I have:
>>> 
>>>     public void error(final Throwable t, final String format, final 
>>> Object... values) {
>>>         this.logger.debug(String.format(format, values), t);
>>>     }
>>> 
>>> The formatted string is logged to the console but not the Exception.
>>> 
>>> Am I missing something?
>>> 
>>> My config looks like this:
>>> 
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <configuration status="OFF">
>>>   <appenders>
>>>     <Console name="Console" target="SYSTEM_OUT">
>>>       <PatternLayout pattern="%d{ ISO8601 } [%t] %-5level: %msg%n" />
>>>     </Console>
>>>   </appenders>
>>>   <loggers>
>>>     <logger name="com.foo" level="DEBUG" />
>>>     <logger name="com.foo.bar" level="INFO" />
>>>     <logger name="com.gargoylesoftware" level="INFO" />
>>>     <root level="INFO">
>>>       <appender-ref ref="Console" />
>>>     </root>
>>>   </loggers>
>>> </configuration>
>>> 
>>> Merci!
>>> -- 
>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org 
>>> JUnit in Action, 2nd Ed: http://bit.ly/ECvg0
>>> Spring Batch in Action: http://bit.ly/bqpbCK
>>> Blog: http://garygregory.wordpress.com 
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>> 
>> 
>> 
>> 
>> -- 
>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org 
>> JUnit in Action, 2nd Ed: http://bit.ly/ECvg0
>> Spring Batch in Action: http://bit.ly/bqpbCK
>> Blog: http://garygregory.wordpress.com 
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
> 
> 

Reply via email to