tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <>
Subject Re: OneLineFormatter by default?
Date Mon, 20 Jun 2011 18:07:24 GMT
Thanks Konstantin. I'll take a look at cleaning up 1) to 3), likely
using the DateFormatCache from the AccessLogValve as a utility class.



On 20.06.2011 18:52, Konstantin Kolinko wrote:
> 2011/6/20 Rainer Jung <>:
>> Should we use the new OneLineFormatter as the default juli formatter?
>> I never found anyone who liked the default java.util.logging log format,
>> which spreads all messages out via two lines. One line contains the
>> timestamp, the other line the message.
>> So if your grep for a message, you want find out when it was issued, and
>> if you look for a certain time range, yout wont see the actual messages.
>> Non-sense.
>> Now that we have our nice little OneLineFormatter, why not use it as
>> default?
> I like the default SimpleFormatter. With the SimpleFormatter those
> messages fit better when they are printed into console window. It is
> easier to read through the log files as well.
> With OneLineFormatter the messages are shifted to the right. The
> offset is arbitrary, because class names before the message have
> arbitrary length. Enabling line wrapping in file viewer is possible,
> but does not make those lines more readable. It is hard to read.
> I think SimpleFormatter should stay as the default.
> Some nitpicks looking at the source code of OneLineFormatter.
> 1) OneLineFormatter#currentDate and currentDateString are used in
> double locking. If I understand it correctly, the should be made
> volatile. Though see the next point.
> 2) I do not understand why OneLineFormatter#addTimestamp( ) method is public.
> It could be protected. It is not used anywhere else. Furthermore, the
> only place where it is called, the #format() method,  always creates a
> new instance of Date object.  Thus "if (currentDate != date)"
> comparison of object instances does not make sense.
> 3) msec value looses its leading zero. E.g. in two subsequent lines:
> 20-Jun-2011 20:25:25.46
> 20-Jun-2011 20:25:25.531
> 4) SimpleFormatter#format() delegates message formatting to
> Formatter#formatMessage(..) which performs lookup through a resource
> bundle and does formatting of parameters.
> OneLineFormatter does not do it. It just uses the message as String.
> It is not of much difference for Tomcat, because Tomcat does not use
> java.util.logging directly, but some other webapps may use it.
> (Not a very strong argument though).
>> If we use it as default: should be have it as default without config,
>> i.e. as a default in code, or do we want to add the .formatter lines to
>> our Or add the formatter system property to
>> I think I would favor having it as a code default, i.e. without any
>> configuration.
> In the code you can change default for the JULI's FileHandler only.
> (Unless you tweak properties loading itself).  There are other Handler
> implementations there.
> If it were changed I'd prefer it to be in the configuration.
> Regarding grep:
> Some grep implementations (e.g. the GNU one) have
>  --context, --before-context, --after-context options to print several lines
> of context for each match
> (section 2.1.5 in [1]).
> [1]:
> Best regards,
> Konstantin Kolinko

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message