Return-Path: Delivered-To: apmail-logging-log4j-dev-archive@www.apache.org Received: (qmail 84861 invoked from network); 6 May 2005 05:32:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 6 May 2005 05:32:45 -0000 Received: (qmail 35318 invoked by uid 500); 6 May 2005 05:35:16 -0000 Delivered-To: apmail-logging-log4j-dev-archive@logging.apache.org Received: (qmail 35114 invoked by uid 500); 6 May 2005 05:35:13 -0000 Mailing-List: contact log4j-dev-help@logging.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Log4J Developers List" Reply-To: "Log4J Developers List" Delivered-To: mailing list log4j-dev@logging.apache.org Received: (qmail 35097 invoked by uid 500); 6 May 2005 05:35:13 -0000 Received: (qmail 35081 invoked by uid 99); 6 May 2005 05:35:12 -0000 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=BIZ_TLD,INFO_TLD,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Thu, 05 May 2005 22:35:10 -0700 Received: (qmail 84838 invoked by uid 1491); 6 May 2005 05:32:36 -0000 Date: 6 May 2005 05:32:36 -0000 Message-ID: <20050506053236.84837.qmail@minotaur.apache.org> From: mwomack@apache.org To: logging-log4j-cvs@apache.org Subject: cvs commit: logging-log4j/src/xdocs/stylesheets project.xml X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N mwomack 2005/05/05 22:32:36 Modified: . Tag: v1_2-branch build.xml docs Tag: v1_2-branch FAQ.html HISTORY.txt src/java/org/apache/log4j Tag: v1_2-branch Category.java Logger.java src/xdocs Tag: v1_2-branch contactUs.xml contributors.xml documentation.xml download.xml earlier.xml history.xml index.xml plan.xml src/xdocs/stylesheets Tag: v1_2-branch project.xml Removed: . Tag: v1_2-branch slf4j.xml src/filtered-java/org/slf4j Tag: v1_2-branch LoggerFactory.java LoggerFactoryAdapter.java ULogger.java src/filtered-java/org/slf4j/impl Tag: v1_2-branch JDK14Logger.java JDK14LoggerFA.java MessageFormatter.java NOPLogger.java NOPLoggerFA.java SimpleLogger.java SimpleLoggerFA.java src/java/org/slf4j/impl Tag: v1_2-branch Log4jLoggerFA.java MessageFormatter.java NOPLogger.java NOPLoggerFA.java SimpleLogger.java SimpleLoggerFA.java Log: Reverted to v1.2.9 version of files to remove slf4j changes and references. Revision Changes Path No revision No revision 1.34.2.16 +4 -27 logging-log4j/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/logging-log4j/build.xml,v retrieving revision 1.34.2.15 retrieving revision 1.34.2.16 diff -u -r1.34.2.15 -r1.34.2.16 --- build.xml 29 Apr 2005 17:39:41 -0000 1.34.2.15 +++ build.xml 6 May 2005 05:32:35 -0000 1.34.2.16 @@ -17,7 +17,7 @@ - + @@ -161,19 +161,6 @@ - - - - - Missing src/java/org/slf4j/*.java source files. - - Just run the refresh-slf4j target with the command: - - ant refresh-slf4j - - - @@ -182,22 +169,14 @@ - - - Fecthing required source files from SLF4J.ORG - - - - - + - No revision No revision 1.15.2.5 +5 -42 logging-log4j/docs/Attic/FAQ.html Index: FAQ.html =================================================================== RCS file: /home/cvs/logging-log4j/docs/Attic/FAQ.html,v retrieving revision 1.15.2.4 retrieving revision 1.15.2.5 diff -u -r1.15.2.4 -r1.15.2.5 --- FAQ.html 29 Apr 2005 17:39:41 -0000 1.15.2.4 +++ FAQ.html 6 May 2005 05:32:35 -0000 1.15.2.5 @@ -346,8 +346,9 @@ remote Unix Syslog daemon, to a remote listener using JMS, to the NT EventLog or even send e-mail.

-
  • log4j uses 6 levels, namely TRACE, DEBUG, INFO, WARN, - ERROR and FATAL.

  • +
  • log4j uses 5 levels, namely DEBUG, INFO, WARN, ERROR and + FATAL. +

  • The format of the log output can be easily changed by extending the Layout @@ -444,7 +445,7 @@

    The open and collaborative way in which log4j is developped ensures that it continues to preserve and even widen its - competitive edge. At some point, input from bright developpers + competitive edge. At some point, input from bright developers from all over the world is bound to make a difference.

    @@ -535,44 +536,6 @@ statement.

    -

    Better alternative based on message patterns

    -

    As of log4j version 1.3, there exists a significantly more - convenient alternative based on message patterns. Assuming - entry is an object, you can write: -

    - -

    - l.debug("The new entry is {}.", entry); -

    - -

    After evaluting whether to log or not, and only if the - decision is positive, will the logger instace format the - message and replace the '{}' pair with the string value of - entry. In other words, the paramerized form does - not incur the cost of parameter construction in case the log - statement is disabled. -

    - -

    Thus, the following two lines will yield the exact same - output. However, the second form will perform at least 30 - (thirty) times faster in case of a disabled logging - statement. -

    - -

    - l.debug("The new entry is "+entry+".");
    - l.debug("The new entry is {}.", entry); -

    - -

    A two argument variant is also availalble. For example, you - can write: -

    -

    - l.debug("The new entry is {}. It replaces {}.", entry, oldEntry); -

    - - -
    2.4 Are there any suggested ways for naming loggers? @@ -1079,7 +1042,7 @@ appear in the file /docs/faq.html.

    - + 1.27.2.2 +8 -12 logging-log4j/docs/HISTORY.txt Index: HISTORY.txt =================================================================== RCS file: /home/cvs/logging-log4j/docs/HISTORY.txt,v retrieving revision 1.27.2.1 retrieving revision 1.27.2.2 diff -u -r1.27.2.1 -r1.27.2.2 --- HISTORY.txt 29 Apr 2005 17:07:43 -0000 1.27.2.1 +++ HISTORY.txt 6 May 2005 05:32:35 -0000 1.27.2.2 @@ -5,23 +5,19 @@ client code. [***] Changes requiring important modifications to existing client code. + Current cvs v1_2-branch (1.2.11 prerelease) + - Fixed bug #34491 whereby the class o.a.log4j.or.jms.MessageRenderer + would not be compiled in the build.jms target. Bug reported by Andy + McBride. http://issues.apache.org/bugzilla/show_bug.cgi?id=34491 + April 28th, 2005 - Release of version 1.2.10 - - Added support for the SLF4J project. The Logger class now - implements the ULogger interface defined by the SLF4J. See - - http://www.slf4j.org - - for more detailed information. - - - Fixed bug #34491 whereby the class o.a.log4j.or.jms.MessageRenderer - would not be compiled in the build.jms target. Bug reported by Andy - McBride. - - http://issues.apache.org/bugzilla/show_bug.cgi?id=34491 + - Version 1.2.10 was not following the accepted rules and process of the + log4j project and Logging Services Project and was recalled and removed. + Please do not use version 1.2.10. November 1st, 2004 No revision No revision 1.68.2.7 +0 -246 logging-log4j/src/java/org/apache/log4j/Category.java Index: Category.java =================================================================== RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/Category.java,v retrieving revision 1.68.2.6 retrieving revision 1.68.2.7 diff -u -r1.68.2.6 -r1.68.2.7 --- Category.java 28 Apr 2005 20:34:04 -0000 1.68.2.6 +++ Category.java 6 May 2005 05:32:36 -0000 1.68.2.7 @@ -31,7 +31,6 @@ import java.util.MissingResourceException; import java.util.ResourceBundle; -import org.slf4j.impl.MessageFormatter; /** * This class has been deprecated and @@ -250,60 +249,6 @@ } } - /** - * Log a message with the DEBUG level with message formatting - * done according to the value of messagePattern and - * arg parameters. - *

    - * This form avoids superflous parameter construction. Whenever possible, - * you should use this form instead of constructing the message parameter - * using string concatenation. - * - * @param messagePattern The message pattern which will be parsed and formatted - * @param arg The argument to replace the formatting element, i,e, - * the '{}' pair within messagePattern. - * @since 1.2.10 - */ - public void debug(Object messagePattern, Object arg) { - if (repository.isDisabled(Level.DEBUG_INT)) { - return; - } - - if (Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel())) { - if (messagePattern instanceof String){ - String msgStr = (String) messagePattern; - msgStr = MessageFormatter.format(msgStr, arg); - forcedLog(FQCN, Level.DEBUG, msgStr, null); - } else { - // To be failsafe, we handle the case where 'messagePattern' is not - // a String. Unless the user makes a mistake, this should never happen. - forcedLog(FQCN, Level.DEBUG, messagePattern, null); - } - } - } - - /** - * Log a message with the DEBUG level with message formatting - * done according to the messagePattern and the arguments arg1 and arg2. - *

    - * This form avoids superflous parameter construction. Whenever possible, - * you should use this form instead of constructing the message parameter - * using string concatenation. - * - * @param messagePattern The message pattern which will be parsed and formatted - * @param arg1 The first argument to replace the first formatting element - * @param arg2 The second argument to replace the second formatting element - * @since 1.2.10 - */ - public void debug(String messagePattern, Object arg1, Object arg2) { - if (repository.isDisabled(Level.DEBUG_INT)) { - return; - } - if (Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel())) { - messagePattern = MessageFormatter.format(messagePattern, arg1, arg2); - forcedLog(FQCN, Level.DEBUG, messagePattern, null); - } - } /** Log a message object with the DEBUG level including @@ -348,62 +293,6 @@ forcedLog(FQCN, Level.ERROR, message, null); } - -/** - * Log a message with the ERROR level with message formatting - * done according to the value of messagePattern and - * arg parameters. - *

    - * This form avoids superflous parameter construction. Whenever possible, - * you should use this form instead of constructing the message parameter - * using string concatenation. - * - * @param messagePattern The message pattern which will be parsed and formatted - * @param arg The argument to replace the formatting element, i,e, - * the '{}' pair within messagePattern. - * @since 1.2.10 - */ - public void error(Object messagePattern, Object arg) { - if (repository.isDisabled(Level.ERROR_INT)) { - return; - } - - if (Level.ERROR.isGreaterOrEqual(this.getEffectiveLevel())) { - if (messagePattern instanceof String){ - String msgStr = (String) messagePattern; - msgStr = MessageFormatter.format(msgStr, arg); - forcedLog(FQCN, Level.ERROR, msgStr, null); - } else { - // To be failsafe, we handle the case where 'messagePattern' is not - // a String. Unless the user makes a mistake, this should never happen. - forcedLog(FQCN, Level.ERROR, messagePattern, null); - } - } - } - - /** - * Log a message with the ERROR level with message formatting - * done according to the messagePattern and the arguments arg1 and arg2. - *

    - * This form avoids superflous parameter construction. Whenever possible, - * you should use this form instead of constructing the message parameter - * using string concatenation. - * - * @param messagePattern The message pattern which will be parsed and formatted - * @param arg1 The first argument to replace the first formatting element - * @param arg2 The second argument to replace the second formatting element - * @since 1.2.10 - */ - public void error(String messagePattern, Object arg1, Object arg2) { - if (repository.isDisabled(Level.ERROR_INT)) { - return; - } - if (Level.ERROR.isGreaterOrEqual(this.getEffectiveLevel())) { - messagePattern = MessageFormatter.format(messagePattern, arg1, arg2); - forcedLog(FQCN, Level.ERROR, messagePattern, null); - } - } - /** Log a message object with the ERROR level including the stack trace of the {@link Throwable} t passed as @@ -766,60 +655,6 @@ } /** - * Log a message with the INFO level with message formatting - * done according to the value of messagePattern and - * arg parameters. - *

    - * This form avoids superflous parameter construction. Whenever possible, - * you should use this form instead of constructing the message parameter - * using string concatenation. - * - * @param messagePattern The message pattern which will be parsed and formatted - * @param arg The argument to replace the formatting element, i,e, - * the '{}' pair within messagePattern. - * @since 1.2.10 - */ - public void info(Object messagePattern, Object arg) { - if (repository.isDisabled(Level.INFO_INT)) { - return; - } - - if (Level.INFO.isGreaterOrEqual(this.getEffectiveLevel())) { - if (messagePattern instanceof String){ - String msgStr = (String) messagePattern; - msgStr = MessageFormatter.format(msgStr, arg); - forcedLog(FQCN, Level.INFO, msgStr, null); - } else { - // To be failsafe, we handle the case where 'messagePattern' is not - // a String. Unless the user makes a mistake, this should never happen. - forcedLog(FQCN, Level.INFO, messagePattern, null); - } - } - } - - /** - * Log a message with the INFO level with message formatting - * done according to the messagePattern and the arguments arg1 and arg2. - *

    - * This form avoids superflous parameter construction. Whenever possible, - * you should use this form instead of constructing the message parameter - * using string concatenation. - * - * @param messagePattern The message pattern which will be parsed and formatted - * @param arg1 The first argument to replace the first formatting element - * @param arg2 The second argument to replace the second formatting element - * @since 1.2.10 - */ - public void info(String messagePattern, Object arg1, Object arg2) { - if (repository.isDisabled(Level.INFO_INT)) { - return; - } - if (Level.INFO.isGreaterOrEqual(this.getEffectiveLevel())) { - messagePattern = MessageFormatter.format(messagePattern, arg1, arg2); - forcedLog(FQCN, Level.INFO, messagePattern, null); - } - } - /** Log a message object with the INFO level including the stack trace of the {@link Throwable} t passed as parameter. @@ -918,33 +753,6 @@ return Level.INFO.isGreaterOrEqual(this.getEffectiveLevel()); } - /** - Check whether this category is enabled for the info Level. - See also {@link #isDebugEnabled}. - - @return boolean - true if this category is enabled - for level WARN, false otherwise. - @since 1.2.10 - */ - public boolean isWarnEnabled() { - if(repository.isDisabled(Level.WARN_INT)) - return false; - return Level.WARN.isGreaterOrEqual(this.getEffectiveLevel()); - } - - /** - Check whether this category is enabled for the info Level. - See also {@link #isDebugEnabled}. - - @return boolean - true if this category is enabled - for level ERROR, false otherwise. - @since 1.2.10 - */ - public boolean isErrorEnabled() { - if(repository.isDisabled(Level.ERROR_INT)) - return false; - return Level.ERROR.isGreaterOrEqual(this.getEffectiveLevel()); - } /** Log a localized message. The user supplied parameter @@ -1191,60 +999,6 @@ forcedLog(FQCN, Level.WARN, message, null); } - /** - * Log a message with the WARN level with message formatting - * done according to the value of messagePattern and - * arg parameters. - *

    - * This form avoids superflous parameter construction. Whenever possible, - * you should use this form instead of constructing the message parameter - * using string concatenation. - * - * @param messagePattern The message pattern which will be parsed and formatted - * @param arg The argument to replace the formatting element, i,e, - * the '{}' pair within messagePattern. - * @since 1.2.10 - */ - public void warn(Object messagePattern, Object arg) { - if (repository.isDisabled(Level.WARN_INT)) { - return; - } - - if (Level.WARN.isGreaterOrEqual(this.getEffectiveLevel())) { - if (messagePattern instanceof String){ - String msgStr = (String) messagePattern; - msgStr = MessageFormatter.format(msgStr, arg); - forcedLog(FQCN, Level.WARN, msgStr, null); - } else { - // To be failsafe, we handle the case where 'messagePattern' is not - // a String. Unless the user makes a mistake, this should never happen. - forcedLog(FQCN, Level.WARN, messagePattern, null); - } - } - } - /** - * Log a message with the WARN level with message formatting - * done according to the messagePattern and the arguments arg1 and arg2. - *

    - * This form avoids superflous parameter construction. Whenever possible, - * you should use this form instead of constructing the message parameter - * using string concatenation. - * - * @param messagePattern The message pattern which will be parsed and formatted - * @param arg1 The first argument to replace the first formatting element - * @param arg2 The second argument to replace the second formatting element - * @since 1.2.10 - */ - public void warn(String messagePattern, Object arg1, Object arg2) { - if (repository.isDisabled(Level.WARN_INT)) { - return; - } - if (Level.WARN.isGreaterOrEqual(this.getEffectiveLevel())) { - messagePattern = MessageFormatter.format(messagePattern, arg1, arg2); - forcedLog(FQCN, Level.WARN, messagePattern, null); - } - } - /** Log a message with the WARN level including the stack trace of the {@link Throwable} t passed as 1.16.2.3 +1 -2 logging-log4j/src/java/org/apache/log4j/Logger.java Index: Logger.java =================================================================== RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/Logger.java,v retrieving revision 1.16.2.2 retrieving revision 1.16.2.3 diff -u -r1.16.2.2 -r1.16.2.3 --- Logger.java 28 Apr 2005 20:34:04 -0000 1.16.2.2 +++ Logger.java 6 May 2005 05:32:36 -0000 1.16.2.3 @@ -8,7 +8,6 @@ package org.apache.log4j; import org.apache.log4j.spi.LoggerFactory; -import org.slf4j.ULogger; /** @@ -18,7 +17,7 @@ @since log4j 1.2 @author Ceki Gülcü */ -public class Logger extends Category implements ULogger { +public class Logger extends Category { /** The fully qualified name of the Level class. See also the No revision No revision 1.14.2.1 +9 -14 logging-log4j/src/xdocs/Attic/contactUs.xml Index: contactUs.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/Attic/contactUs.xml,v retrieving revision 1.14 retrieving revision 1.14.2.1 diff -u -r1.14 -r1.14.2.1 --- contactUs.xml 9 May 2002 15:43:44 -0000 1.14 +++ contactUs.xml 6 May 2005 05:32:36 -0000 1.14.2.1 @@ -2,7 +2,7 @@ - Ceki Gulcu + Ceki Gulcu Contact us @@ -14,21 +14,16 @@

    Discussion on log4j and logging in general are held on the log4j-user mailing list. To subscribe to this list send an e-mail to log4j-user-subscribe@jakarta.apache.org. + HREF="mailto:log4j-user-subscribe@logging.apache.org">log4j-user-subscribe@logging.apache.org.

    Development related discussions are held on the log4j-dev mailing list. To subscribe to this list send an e-mail to log4j-dev-subscribe@jakarta.apache.org.

    - -

    All developers are encouraged to subscribe to the - log4j-cvs list which will notify the subscribers of - CVS any commits to the repository. To subscribe to this list - send an e-mail to log4j-cvs-subscribe@jakarta.apache.org. - Committers should subscribe to this list with their - Apache e-mail address. + HREF="mailto:log4j-dev-subscribe@logging.apache.org">log4j-dev-subscribe@logging.apache.org. All + developers are encouraged to subscribe to the + log4j-dev list which will notify the subscribers of + any commits to our CVS repository.

    To prevent spam, we expect you to be subscribed to a list @@ -37,7 +32,7 @@ creates needless work for us.

    -

    Most Jakarta mailing lists, in particular the log4j mailing +

    Most Logging Services mailing lists, in particular the log4j mailing lists, are archived. Some of the known archives are listed below:

    @@ -48,9 +43,9 @@ http://www.mail-archive.com
  • -
  • Full mbox archives of all Jakarta lists are available at +
  • Full mbox archives of all Logging Services lists are available at http://jakarta.apache.org/mail/ + href="http://logging.apache.org/mail/">http://logging.apache.org/mail/
  • 1.7.2.3 +82 -10 logging-log4j/src/xdocs/contributors.xml Index: contributors.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/contributors.xml,v retrieving revision 1.7.2.2 retrieving revision 1.7.2.3 diff -u -r1.7.2.2 -r1.7.2.3 --- contributors.xml 18 Jun 2002 14:11:38 -0000 1.7.2.2 +++ contributors.xml 6 May 2005 05:32:36 -0000 1.7.2.3 @@ -14,9 +14,12 @@ more prominent contributors are listed below in alphabetical order.

    +
      -
        - + + + +
      • Mathias Bogaert

        While not lurking on Ceki Gülcü -

        Ceki is the founder the log4j project which still takes - much of his time. He enjoys writing software altough he is - discovering that it is far more difficult than it looks. He - is also slowly building an IT services company called qos.ch. -

        -
      • + + + + +

        Ceki is the founder the log4j project which + continues to occupy much of his time. He enjoys writing + software altough he is discovering that it is far more + difficult than what it may seem initially. He is also + managing his IT services + company.

        + + +
      • Jacob Kjome + +

        Jacob Kjome has been developing software + since 1997 and has been playing with Java for about 4 years. + Jake joined the log4j team after being very active on the + user list and contributing servlet and repository selector + related code to the logj-sandbox. He is also a committer on + the (non-Apache related) XMLC, BarracudaMVC, and Prevayler + projects. Of late his free time has been squeezed with a + new job and his vigorous 2 year old son, Nicholas, but he + still tries to pitch in when he can. :-) +

        +
      • Anders Kristensen @@ -63,6 +84,21 @@

      • +
      • Yoav Shapira + + + + +
        +

        Yoav Shapira works for Millennium Pharmaceuticals and + is as interested in the business aspects of Open-Source + Software as he is in the technical aspects. Yoav contributes + to the Tomcat container, the Log4j logging system, and a + number of jakarta-commons and other open-source projects. +

        +
        +
      • +
      • Jon Skeet

        Jon is a software developer in his mid-twenties living in @@ -74,6 +110,24 @@

      • +
      • Paul Smith + + + + +
        +

        Paul Smith has been developing software since 1990, and playing + computer games a few years longer than that. He has been thoroughly + enjoying Java since 1998 after he gave up on Visual Basic in disgust. + Paul joined the log4j team after finding how darn useful it and the + companion Chainsaw application was in '03, and has been helping out + where he can, working on Chainsaw v2, and generally making a good + nuisance of himself. +

        + + +
      • +
      • Chris Taylor @@ -83,9 +137,27 @@ href="jakarta.apache.org/ant/">jakarta-ant.

      • + +
      • Mark Womack + + + + + +

        Mark Womack has been developing software for over 12 + years. He has been developing in Java for the past 4 years, + focusing on web application development. He has been an + active committer for the Apache Jakarta log4j project since + April 2002, contributing features for the upcoming v1.3 + release.

        -
      + + + + + +
    1.15.2.7 +162 -76 logging-log4j/src/xdocs/documentation.xml Index: documentation.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/documentation.xml,v retrieving revision 1.15.2.6 retrieving revision 1.15.2.7 diff -u -r1.15.2.6 -r1.15.2.7 --- documentation.xml 18 Feb 2003 16:50:13 -0000 1.15.2.6 +++ documentation.xml 6 May 2005 05:32:36 -0000 1.15.2.7 @@ -2,55 +2,56 @@ - Ceki Gulcu + Ceki Gulcu + Yoav Shapira Documentation - +
    - +

    With the exception of the complete manual, the following - documentation is included with the standard log4j distribution - and also browsable online: + documentation is included with the standard log4j distribution + and also browsable online:

    + +
    + +
    +
    +

  • Understanding + Classloaders: log4j in a J2EE Environment by Vikram Goyal +
  • +

    -

    If you would like your log4j-relateed article to be listed - here, then please send a note to the log4j-user@jakarta.apache.org - list. -

    +

  • Logging + für Java-Programme, Zu den Akten by Bernhard Bablok + in Linux Magazine, 04/2002. +
  • +

    + +

  • Instant logging: Harness the power of log4j with Jabber by Ruth Zamorano and Rafael Luque, in developerWorks 2003 +
  • +

    +

    +

  • Using Log4j in the Sun Java System Application Server by Matthew Litkey, Jay Galvin, and Marina Sum, from Sun. +
  • +

    + +

    +

  • Reporting + Application Errors by Email by Sean C. Sullivan, + 2004-09-24, published by O'Reilly. +
  • +

    + +
    - + +
    + +
    + + +
    +

    The following organisations offer log4j-related consultancy + and training services. Their inclusion on this page does + not imply endorsement by the Apache Software Foundation. +

    + + + + + +

    If you would like your log4j-related article or service + to be listed here, then please send a note to the log4j-user@logging.apache.org + list. +

    +
    + +
    1.53.2.14 +184 -93 logging-log4j/src/xdocs/download.xml Index: download.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/download.xml,v retrieving revision 1.53.2.13 retrieving revision 1.53.2.14 diff -u -r1.53.2.13 -r1.53.2.14 --- download.xml 18 Feb 2003 16:50:13 -0000 1.53.2.13 +++ download.xml 6 May 2005 05:32:36 -0000 1.53.2.14 @@ -6,55 +6,45 @@ Download - - - -
    -

    log4j 1.2.8 is available in TAR.GZ format - or in ZIP - format. -

    - -

    As of release 1.2.8 log4j now searches for the file log4j.xml - as well as the file log4j.properties during - initialization. See the HISTORY file for - the firther details. -

    - -

    In addition to many performance improvements, bug fixes, and - other small enhancements, log4j 1.2 adds JMX support, Mapped - Diagnostic Contexts, JDBC logging, graphical log viewer - (chainsaw), and buffered IO capability. One important change - is the replacement of the Category class with - Logger class and the Priority class - with the Level class in order to facilitate - migrating from the JDK 1.4 logging API to log4j. -

    - -

    Version 1.2 is the 22nd major public release of log4j. All - changes except the removal of deprecated methods are backward - compatible such that log4j 1.2 can be considered a drop in - replacement for log4j 1.1.3. The only exception is the - renaming of the CategoryFactory class to - LoggerFactory class such that subclasses of - Category class must be modified and - recompiled. The recommended pattern for extending the - Logger class is wrapping. Moreover, we strongly - discourage casual users from subclassing the - Category or Logger classes. -

    - -

    We also maintain a list of earlier - versions of log4j for download, intended for the curious - paleontologist -- there seems to be quite a few of them! -

    - + + + +
    +

    Log4j is available + for download from a number of mirrors. Please + use these mirrors as they improve download time and save + bandwidth. +

    + +

    Log4j version 1.2.9, is identical to version 1.2.8, + except that several key methods have been deprecated in + preparation for version 1.3.0, the next major release of + log4j. These changes are intended to enforce the rule that + client code should never refer to the Category + class directly, but use the Logger class + instead. Similarly, client code should not refer to the + Priority class but to the Level + class instead. +

    + +

    See the document entitled preparing + for log4j 1.3 for a more detailed discussion. +

    + + + + +

    We also maintain earlier + versions of log4j for download, intended for the + curious paleontologist -- there seems to be quite a few + of them! +

    +
    -
    +
    @@ -64,15 +54,27 @@
    Chainsaw
    -
    Chainsaw is now integrated with log4j and ships with - the official distribution. Chainsaw is a graphical log - viewer and filter for the log4j package. It listens for LoggingEvent - objects sent using the SocketAppender - and displays them in a table. Chainsaw also supports loading - events from files in XMLLayout format. + href="chainsaw.html">Chainsaw v2 (NEW!) + +
    A new and improved version of the venerable Chainsaw + utility, now being written by the log4j development team is + getting closer to release. You can see screen shots of it and + install it and run over here +
    + + +
    DatedFileAppender
    + +
    DatedFileAppender works in the same manner as + the Tomcat FileLogger. Contrary to + DailyRollingFileAppender shipping with log4j, log + file names generated by DatedFileAppender always + contain today's date. While this distinction seems minor, it + means you can reliably copy, compress, remove or manipulate a + day's log file shortly after midnight. With the + DailyRollingFileAppender, a day's log file is not + renamed until the first message is logged some time after + midnight.
    @@ -86,7 +88,7 @@
    JDBCAppender + href="http://www.dankomannhaupt.de/projects/index.html">JDBCAppender
    A powerful JDBCAppender by Danko Mannhaupt @@ -95,9 +97,47 @@ log4j 1.2.
    + + +
    + Just4log +
    + +
    Just4Log is a library to enhance dynamically the + performance of various logging systems inside a java + application. Dynamically because the sourcecode in java is not + modified but rather the optimization occurs on the compiled + ByteCode files. +
    + + +
    log4Ant
    + +
    log4Ant includes a complete bridge to the Log4J logging systemfor a robust build monitoring system. + These Ant components let you capture, map, and send Ant log messages and stdio output through your Log4J installation. Contact contact@jware.info +
    + + +
    log4j400
    + +
    Log4J400 includes MessageQueue and DataQueue Appenders for + the AS/400 (aka IBM iSeries). +
    + + + +
    log4j2db
    + +
    This Project provides a set of EJBs to store Log4J events + (received via JMS appender) in a database. The main aim is to + provide a toolset for a centralized, data-center suitable + logging. +
    + -
    log4jME
    +
    log4jME
    Log4jME, or log4j MiniEdition, is based on the same code as log4j. However, as the name indicates the @@ -106,40 +146,39 @@ compatible with log4j standard edition. You can choose to upgrade to log4j standard edition at any time by replacing log4jME.jar with log4j.jar in your - classpath. + classpath. At this time, log4jME is only available through + CVS.
    + + + +
    log4Unit
    - - -
    LogWeb (commercial)
    - -
    Log4Web is a J2EE web application, designed to web-enable - system log files that have been generated by log4j. +
    Log4Unit is a JUnit extension + combining JUnit with Log4J. The intention is to create test + protocols for JUnit. + +

    JUnit is asymmetrical in the sense that it focusses on the + documentation of test failures and errors. Successful + execution of a test case is not further documented. In order + to obtain a test protocol that documents the initial settings, + the test case execution and its results, a logging component + is required. Log4J as the current de facto standard is + selected for this extension. +

    -
    Lumbermill
    -
    Lumbermill is a Swing(tm) log processing and distribution - system for Log4j.
    - - - -
    - LogFactor5 - (commercial) -
    +
    Log4Web (commercial)
    -
    Another full-featured graphical log viewer. After a merger - and the subsequent change in business-orientation, the - owners of LogFactor5 have decided to donate their product to - the log4j project. +
    Log4Web is a J2EE web application, designed to web-enable + system log files that have been generated by log4j.
    - +
    Log Tag
    @@ -149,6 +188,16 @@ +
    LogWeb
    + +
    LogWeb is a web interface for configuring log4j at runtime + within a servlet container. Every log4j feature of is + configurable through this interface. +
    + + + +
    SNMPTrapAppender
    @@ -161,13 +210,50 @@ +
    XpoLog +
    + +
    Log view and analysis application which enables web + browsing and analysis over logs. +
    + + +
    -
    +
    + +
    + +
    log4cxx
    +
    Log4cxx is a port to C++ of the log4j project.
    + + +
    log4net
    + +
    The .NET implementation of the popular log4j Java API + providing flexible and arbitrarily granular control over log + management and configuration.
    + + +
    log4php
    + +
    Log4Php is a PHP port of log4j framework. It supports xml configuration, + logging to files, stdout/err, syslog, socket, configurable + output layouts and logging levels.
    + +
    +
    + + +
    +
    log4c
    @@ -187,7 +273,10 @@
    log4cplus
    -
    A competing port to C++.
    +
    Log4cplus is a simple to use C++ logging API providing + thread-safe, flexible, and arbitrarily granular control over + log management and configuration. It is modeled after the Java + log4j API.
    @@ -209,13 +298,14 @@ enhanced, however the current release is stable and has been released to CPAN. - -
    log4net
    -
    The .NET implementation of the popular log4j Java API - providing flexible and arbitrarily granular control over log - management and configuration.
    + +
    log4LS
    + +
    Log4LS is a LotusScript library package and is used to get + logging statements to a Domino database, sent by mail or + written to a file. It is modeled after Jakarta log4j. +
    - + +

    If you would like your software to be listed here, then send a note to the log4j-user@jakarta.apache.org + href="mailto:log4j-user@logging.apache.org">log4j-user@logging.apache.org list.

    1.7.2.1 +4 -16 logging-log4j/src/xdocs/earlier.xml Index: earlier.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/earlier.xml,v retrieving revision 1.7 retrieving revision 1.7.2.1 diff -u -r1.7 -r1.7.2.1 --- earlier.xml 4 Apr 2002 14:46:02 -0000 1.7 +++ earlier.xml 6 May 2005 05:32:36 -0000 1.7.2.1 @@ -12,27 +12,15 @@
    -

    BEWARE: For some reason Internet Explorer decides to - rename ".tar.gz" files as ".tar". You should rename the files back to +

    BEWARE:Certain Internet Explorer versions rename .tar.gz downloads + as .tar. You should rename the files back to tar.gz after the download completes.


    -
    -
    jakarta-log4j-1.0.4
    -
    - Download full package in TAR.GZ - format. -
    + Log4j Archives -
    jakarta-log4j-1.1.3
    -
    - Download full package in TAR.GZ - format. -
    -
    - -
    + 1.11.2.1 +11 -15 logging-log4j/src/xdocs/history.xml Index: history.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/history.xml,v retrieving revision 1.11 retrieving revision 1.11.2.1 diff -u -r1.11 -r1.11.2.1 --- history.xml 2 Apr 2002 09:07:35 -0000 1.11 +++ history.xml 6 May 2005 05:32:36 -0000 1.11.2.1 @@ -17,20 +17,19 @@

    The project's official URL is http://jakarta.apache.org/log4j. + href="http://logging.apache.org/log4j">http://logging.apache.org/log4j.

    Many thanks to all the log4j users who keep sending us input - and sometimes even praise for our collective effort. The first - ancestor of log4j was written for the E.U. sponsored SEMPER project. N. Asokan, - Ceki Gülcü and Michael Steiner came up with the idea - of hierarchical loggers back in 1996. Their idea is still - at the heart of log4j. The package was considerably improved - over the years at the IBM Zurich Research - Laboratory. However, log4j is no longer associated nor - supported by IBM. + and sometimes even praise for our collective effort. The first + ancestor of log4j was written for the E.U. sponsored SEMPER project. N. Asokan, + Ceki Gülcü and Michael Steiner came up with the idea + of hierarchical loggers back in 1996. Their idea is still at the + heart of log4j. The package was considerably improved over the + years at the IBM Zurich + Research Laboratory. However, log4j is no longer associated + nor supported by IBM.

    Special thanks to M. Niksch from ZRL for his assistance on @@ -39,10 +38,7 @@ helpful in easing the move to Apache.

    -

    The log4j logo was designed and kindly donated by Cyberlab S.A. of Switzerland. +

    The log4j logo was designed and kindly donated by Cyberlab SA of Switzerland.

    1.8.2.2 +1 -1 logging-log4j/src/xdocs/index.xml Index: index.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/index.xml,v retrieving revision 1.8.2.1 retrieving revision 1.8.2.2 diff -u -r1.8.2.1 -r1.8.2.2 --- index.xml 12 Jun 2002 21:31:35 -0000 1.8.2.1 +++ index.xml 6 May 2005 05:32:36 -0000 1.8.2.2 @@ -56,7 +56,7 @@

    On an AMD Duron clocked at 800Mhz running JDK 1.3.1, it costs about 5 nanoseconds to determine if a logging statement should be logged or not. Actual logging is also quite fast, ranging - from 21 microseconds microseconds using the SimpleLayout, 37 + from 21 microseconds using the SimpleLayout, 37 microseconds using the TTCCLayout. The performance of the PatternLayout is almost as good as the dedicated layouts, except that it is much more flexible.

    1.7.2.2 +46 -189 logging-log4j/src/xdocs/plan.xml Index: plan.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/plan.xml,v retrieving revision 1.7.2.1 retrieving revision 1.7.2.2 diff -u -r1.7.2.1 -r1.7.2.2 --- plan.xml 12 Jun 2002 21:31:35 -0000 1.7.2.1 +++ plan.xml 6 May 2005 05:32:36 -0000 1.7.2.2 @@ -11,8 +11,8 @@

    The following paragragh was adapted from the Cactus - project's roadmap with the author's permission. + href="http://jakarta.apache.org/cactus/">Cactus project's + roadmap with the author's permission.

    Our users keep inventing better ways and adding new @@ -44,7 +44,7 @@ reliable product.

    - +
    @@ -63,8 +63,8 @@ as early is possible. It is strongly recommended to add a new test case with each new feature or component.

    -

    Existing Perl language based test cases are - gradually being migrated to junit (all-Java)based test +

    Existing Perl language based test cases have been + migrated to junit (all-Java)based test cases. The new tests are placed under the tests/ directory. It should be thus possible for participants in the project to understand @@ -91,14 +91,13 @@ are configured separately.

    -

    The support for extensible configuration files will be - based on the code in commons-digester authored by Craig - McClanahan and Scott Sanders. They graciously granted - permission for the modification of their code and its - inclusion in log4j.

    +

    The new JoranConfigurator being created by Ceki will be based on + a new 'module' know as Joran, which can convert XML files into other objects based + on rules. You can read more abouth Joran here +

    - + @@ -133,20 +132,35 @@ + + + + + + + - - + + @@ -157,19 +171,24 @@ extensions to XML configuration language mentioned above. - - + + - + - - + + @@ -189,8 +208,8 @@ scripts.

    - - + + @@ -232,169 +251,7 @@
    Label Cekidesign boardSignificantly progressed
    ? vaporware
    Plugins/Receivers +

    A Plugin framework has been designed and implemented.

    +

    All of the currently developed plugins are "Receivers", which can be thought of as the reverse of an appender; something + that accepts LoggingEvents from some external source. +

    +

    This has proven particulaly useful with the log4j ports, with the addition of the XML-based Receivers able to accept + LoggingEvents generated from other languages (see "Overture to other programming languages" below) +

    + +
    AllSignificantly progressed
    Improvements to Chainsaw -

    Visualisation and dynamic filtering of logging event is - bound to be a very important area of activity in the - future. A number of important improvements to chainsaw - have been suggested. +

    Chainsaw v2 development has now progressed to the point where the main developers of it + and many other members of the logging community are using it daily. It's still pre-alpha but only + because we keep thinking up things to add.

    Oliver Burnunder discusisonScott Deboy and Paul SmithSignificantly progressed
    ?not startedCekiCompleted, still testing
    Overture to other programming languagesIt is higly desriable to allow log4j ports in other languages - to access log4j services in a language independent way. -

    It is higly desriable to allow log4j ports in other languages + to access log4j services in a language independent way.

    + +

    The use of a standard XML format to represent a LoggingEvent has been established and many of the related logging projects from + non-Java languages have begun to support it. In fact, a number of the log4j ports have volunteered to join Apache!

    + +

    Scott Deboy has completed work to create a fex XML-based Receiver + classes that can accept logging events from an external source, and 'import' them into the local log4j environment.

    ?not startedCeki, Scott DeboySignificantly Progressed (if not completed)
    Kevin Steppenot startedCekiSignificantly Progressed
    - - - -
    -

    - Here is workplan for the 1.2 release. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    LabelCommentVolunteerStatus
    More test casesWe need more automated test cases to catch bugs as early - is possible.It is highly recommended to add a new test case - with each new feature or component.All committersongoing effort
    Removal of deprecated methodsDeprecated setOption and getOption - methods in appender and layouts should be removed.Cekidone
    JDBCAppender -

    We currently have two competing JDBCAppenders: one by - Thomas Fenner and the other by Kevin Steppe.

    - -

    Kevin Steppe stood up and did it.

    -
    Kevin Steppedone
    Log4j in appletsIn order to minimize network traffic, the size of log4j-core.jar - needs to be reduced to at most 50KB. - -

    Log4jME has been released. It's less than 20KB.

    -
    Cekidone
    Improved documentationLog4j documentation needs to be enhanced with configuration - examples and much more hand-holding.Cekiongoing effort
    Mapped Diagnostic ContextsMapped Diagnostic Contexts are similar to the NDC - except that the MDC is a string to string map instead of - a stack that the user sets when entering a special - context. The PatternLayout has to be - enhanced to support this by extending the %x pattern to - accept an argument. Here is an example: - -
      -    ConversionPattern=3D%d %p %c %x{server} %x{host} - %m%n
      -	    
    - - User code: -
      -    {
      -       MDC.put("server", "totoServer");
      -       MDC.put("host", "someHost");
      -	      
      -       logger.debug("Hello");
      -	      
      -    }
      -
    - will print: -
    2000-01-24 10:00:00,000 DEBUG totoServer someHost - Hello
    - -

    To make MDCs truly user friendly - ThreadLocal variables are required. This - will allow the MDC to be inherited by child - threads. ThreadLocal are only supported - under JDK 1.2 and above. In JDK 1.1, the MDC will not - work but won't harm the user application either.

    -
    Cekidone
    Enhanced variable substitution support in DOMConfiguratorCekidone
    FallbackErrorHandlerThe FallbackErrorHandler implements the ErrorHandler - interface such that a secondary appender may be - specified. This secondary appender takes over if the primary - appender fails for whatever reason. - -

    The DOMConfigurator needs to be extended to support the - FallbackErrorHandler

    - -
    Cekiimplemented, requires further testing
    Ensure backward compatibility of LoggingEvent - objectsTo avoid deployment problems we must ensure that - LoggingEvent objects are compatible between 1.2 and 1.1.3. - -

    Robert Bushman has proposed a very innovative way for - solving this problem. See - http://www.mail-archive.com/log4j-dev@jakarta.apache.org/msg01397.html - for further details. -

    -
    Cekiimplemented, manually tested, requires automated test cases
    -
    - + No revision No revision 1.11.2.2 +11 -11 logging-log4j/src/xdocs/stylesheets/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/logging-log4j/src/xdocs/stylesheets/project.xml,v retrieving revision 1.11.2.1 retrieving revision 1.11.2.2 diff -u -r1.11.2.1 -r1.11.2.2 --- project.xml 19 Feb 2003 13:37:36 -0000 1.11.2.1 +++ project.xml 6 May 2005 05:32:36 -0000 1.11.2.2 @@ -1,29 +1,29 @@ - - + + Log4j project The log4j project - + + - + - - - - - - + + + + + --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org For additional commands, e-mail: log4j-dev-help@logging.apache.org