<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
I just checked in some changes against the logger.<br>
<br>
I have it working from a config file loaded from the jar. Not anywhere
near as easy as log4j, but it works.<br>
I also added a PatternFormatter that uses MessageFormat style formats
to format the message.<br>
<br>
<br>
I guess we could have two loggers (same interface), one for java, one
for log4j and load the appropriate one at load time.<br>
<br>
Let me know if you think we should do this.<br>
<br>
Joe Walker wrote:
<blockquote cite="mid5dd4742604091915035c1700d@mail.gmail.com"
 type="cite">
  <pre wrap="">The idea behind the wrapper was that it makes it easy to switch from
l4j to something else

Other advantages of log4j:
- comes with outputters for more things; unix syslog could be useful
to someone wanting to write a webapp for example and there are GUIs
that let you look at the output.
- i seem to remember that it was easier to configure for some complex
logging config files.

While these are not reasons to stay with log4j, they are perhaps
reasons to not burn the bridge back, and the Logger class is really
small.

Joe.

On Sun, 19 Sep 2004 17:47:23 -0400, DM Smith <a class="moz-txt-link-rfc2396E" href="mailto:dmsmith555@yahoo.com">&lt;dmsmith555@yahoo.com&gt;</a> wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Well I have taken a look at replacing log4j with Java's logger. The goal
is to make common as light as possible (wrt to dependencies on outside
jars) so that other projects would not hesitate to use it.

It looked like it was a pretty simple change, but there is a snag. It
does not properly report the location of the logging.

First let me describe how the two map to each other:
Both have the same notion of getting a logger named via the class name:
log4j is Logger.getLogger(Class clazz)
java is Logger.getLogger(String classname)

Both have predefined levels in a Level class.
log4j: FATAL,ERROR,WARN,INFO,DEBUG
java: SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST
and both have convienence functions for these methods. I see mapping
them from left to right and not using FINER and FINEST.

Both have:
    the same notion of inheritance of logging
    the same notion of a root logger
    the same notion of configuration by a properties file
    the ability to set the global logging level

Differences:
log4j allows for a Throwable to be passed into the convienence methods
(e.g. log.warn("message", throwable) and it appends it to the message.)
java requires the use of logger.log(Level.WARNING, "message", throwable)

log4j can be wrapped and produce class, method and line of the caller.
Java's logger does not dig into the stack trace to determine the nearest
match to the logger's class.
    Solution: in the wrapper get the stack trace and figure out the
calling class, method and line. Not very easy but can be done.

log4j writes to stdout, while java writes to stderr. This is
configurable in log4j and I think in java. My opinion is that stderr is
better as it is not buffered.

log4j has single line output, java has 2 line output. This is
configurable in log4j and I think in java.

I am going to check in the change to .../common/util/Logger.java so you
can see the differences. I handled the stack trace.

Given our use of log4j, I don't see any advantage of it over Java's logger.

My recommendation is to migrate to Java's logger directly and not
wrapped (as opposed to solving the wrapping problem).

I'll be looking into configuring the logger to mimic the output of log4j.

_______________________________________________
jsword-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a>

    </pre>
  </blockquote>
  <pre wrap=""><!---->_______________________________________________
jsword-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a>

  </pre>
</blockquote>
</body>
</html>