Please check out www.slf4j.org before deciding on commons logging...

Thanks,
Michael

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Martin Desruisseaux
Sent: Monday, March 26, 2007 2:06 PM
To: Andrea Aime
Cc: Geotools-Devel list
Subject: Re: [Geotools-devel] Geotools logging (again)

I'm not sure to be able to attend to today IRC. I just moved from Canada
to France and still looking for a place to stay, etc.

As far as logging is concerned, internationalization is not a blocker
issue. I can localize the message before to pass it to a logging API.
The difference is that it will be formatted according the server's
locale; there is no chance to get it formatted according the client
locale (where the "client" may be somebody using the Java Monitoring
framework).

What I find a little bit more unfortunate is that common-logging API is
very minimalist. The common-logging API is strictly limited to methods
like:

     boolean isTraceable();
     void trace(String Message, Throwable t);

There is really nothing else. With Java logging, you can control more
aspects, including (but not limited to) localization, source class name
and source method name. I do modify the source method name very often,
for the following reasons:

   * Sun warns that automatic detection of source method is unreliable,
     especially in a server environment, because of Hotspot
optimizations.
     Specifying explicitly the source method/class name is more reliable
     and accurate.

   * In many cases, the calling method is not the one we want to show as
"source
     method name". Example:

     public myPublicMethod() {
         // ... do some processing ...
         log("My message", "myPublicMethod");
     }

     public anOtherPublicMethod() {
         // ... do some processing ...
         log("My other message", "anOtherPublicMethod");
     }

     private static log(String message, String sourceMethodName) {
         // Log the message to some logger common to every methods
         // in this class, maybe providing some additional information
         // related to this class state.
     }

     Without the ability to set explicitly the source method name, logs
would
     be logged as if they were originating from the "log" method. But
the "log"
     method is purely a private helper method; the real originators are
     "myPublicMethod" and "myOtherPublicMethod".

With common-logging, there is no way to create log records with the
level of accuracy and convenience (for the human reader) that
java-logging provides. We are sure to get lower quality log records.
However I realize that I'm probably the only one to use localization and
explicit source method setting, and the vast majority of Geotools
developers seem to want common logging. If this is the wish of Geotools
PMC, I can abandon java logging. If we want to give a last chance to
java logging, I can apply the changes proposed by Justin this week...

What peoples wish?

        Martin

------------------------------------------------------------------------
-
Take Surveys. Earn Cash. Influence the Future of IT Join
SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDE
V
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to