On Thu, Oct 4, 2012 at 5:55 PM, Paul Benedict <pbened...@apache.org> 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?
>

So instead of:

this.logger.debug(new StringFormattedMessage(format, values), t);

I would do:

this.logger.debug(StringFormattedMessage.class, t, format, values);

Which then I might as well do:

this.logger.methodNameTbd(t, format, values);

?

G

>
> 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://goog_1249600977/>http://bit.ly/ECvg0
>>> Spring Batch in Action: <http://s.apache.org/HOq>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://goog_1249600977/>http://bit.ly/ECvg0
>> Spring Batch in Action: <http://s.apache.org/HOq>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://goog_1249600977>http://bit.ly/ECvg0
Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to