You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2021/12/23 16:25:31 UTC

[logging-log4j1] annotated tag v1.3alpha8 created (now 5d146a8)

This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a change to annotated tag v1.3alpha8
in repository https://gitbox.apache.org/repos/asf/logging-log4j1.git.


      at 5d146a8  (tag)
 tagging 1201725868d7caa52dfa14e1d5630affbed39d9f (commit)
      by Mark Dwayne Womack
      on Thu Feb 2 02:46:43 2006 +0000

- Log -----------------------------------------------------------------
v1.3alpha8
-----------------------------------------------------------------------

This annotated tag includes the following new commits:

     new 0a0d6d8  Tagging for 1.3 alpha 8 build
     new e32ebd9  Tagging for 1.3 alpha 8 build
     new d18a582  Tagging for 1.3 alpha 8 build
     new bd04062  Trying to fix the 1.3alpha8 tag
     new 1201725  Real tag for the 1.3alpha8 build

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[logging-log4j1] 01/05: Tagging for 1.3 alpha 8 build

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to annotated tag v1.3alpha8
in repository https://gitbox.apache.org/repos/asf/logging-log4j1.git

commit 0a0d6d8034bfc5c4b08f8eac65b8f0af4a215f42
Author: Mark Dwayne Womack <mw...@apache.org>
AuthorDate: Fri Jan 27 05:04:47 2006 +0000

    Tagging for 1.3 alpha 8 build
    
    git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/tags/v1.3alpha8@372734 13f79535-47bb-0310-9956-ffa450edef68

[logging-log4j1] 04/05: Trying to fix the 1.3alpha8 tag

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to annotated tag v1.3alpha8
in repository https://gitbox.apache.org/repos/asf/logging-log4j1.git

commit bd04062f4ce92d108ae41fd41926de55a918372f
Author: Mark Dwayne Womack <mw...@apache.org>
AuthorDate: Thu Feb 2 02:43:24 2006 +0000

    Trying to fix the 1.3alpha8 tag
    
    git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/tags/v1.3alpha8-temp@374227 13f79535-47bb-0310-9956-ffa450edef68

[logging-log4j1] 05/05: Real tag for the 1.3alpha8 build

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to annotated tag v1.3alpha8
in repository https://gitbox.apache.org/repos/asf/logging-log4j1.git

commit 1201725868d7caa52dfa14e1d5630affbed39d9f
Merge: d18a582 bd04062
Author: Mark Dwayne Womack <mw...@apache.org>
AuthorDate: Thu Feb 2 02:46:43 2006 +0000

    Real tag for the 1.3alpha8 build
    
    git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/tags/v1.3alpha8@374231 13f79535-47bb-0310-9956-ffa450edef68

 build.properties.sample                            |    8 +-
 build.xml                                          |   64 +-
 docs/.cvsignore                                    |   15 -
 docs/HISTORY.txt                                   |    2 +-
 docs/chainsaw.html                                 |   65 +-
 docs/codes.html                                    |    8 +-
 docs/contactUs.html                                |  186 --
 docs/contributors.html                             |    8 +-
 docs/documentation.html                            |   10 +-
 docs/download.html                                 |    8 +-
 docs/earlier.html                                  |    8 +-
 docs/faq.html                                      |    8 +-
 docs/history.html                                  |    8 +-
 docs/index.html                                    |    8 +-
 docs/install-chainsaw.html                         |    8 +-
 docs/manual.html                                   |   11 +-
 docs/overview.html                                 |   23 +-
 docs/plan.html                                     |    8 +-
 docs/ugli.html                                     |    8 +-
 lib/javasvn-cli.jar                                |  Bin 73347 -> 0 bytes
 lib/javasvn.jar                                    |  Bin 438382 -> 0 bytes
 src/java/org/apache/log4j/FileAppender.java        |    3 +-
 .../org/apache/log4j/filter/StringMatchFilter.java |    2 +-
 src/java/org/apache/log4j/helpers/BoundedFIFO.java |    2 +-
 src/java/org/apache/log4j/net/UDPAppender.java     |    2 +-
 .../java/org/apache/log4j/nt/EventLogCategories.h  |    0
 .../java/org/apache/log4j/nt/EventLogCategories.rc |    0
 .../java/org/apache/log4j/nt/MSG00001.bin          |  Bin
 .../apache/log4j/selector/ContextJNDISelector.java |    4 +-
 src/java/org/apache/log4j/selector/package.html    |    6 +-
 .../apache/log4j/varia/LogFilePatternReceiver.java |    4 +-
 src/xdocs/chainsaw.xml                             |   61 +-
 src/xdocs/documentation.xml                        |    2 +-
 src/xdocs/stylesheets/site.vsl                     |    8 +-
 tests/build.properties.sample                      |    4 +
 tests/build.xml                                    |    5 +-
 trunk/.cvsignore                                   |   27 -
 trunk/BRANCHES                                     |   61 -
 trunk/HOWTOBUILD.txt                               |   31 -
 trunk/INSTALL.txt                                  |  175 --
 trunk/KEYS                                         |  192 --
 trunk/LICENSE.txt                                  |  202 --
 trunk/NOTICE.txt                                   |    7 -
 trunk/build.properties.sample                      |   98 -
 trunk/build.xml                                    | 1067 -----------
 trunk/docs/HISTORY.txt                             | 1936 --------------------
 trunk/docs/TROUBLESHOOT.html                       |  301 ---
 trunk/docs/chainsaw-1.jpg                          |  Bin 157864 -> 0 bytes
 trunk/docs/chainsaw.html                           |  197 --
 trunk/docs/codes.html                              |  280 ---
 trunk/docs/contributors.html                       |  269 ---
 trunk/docs/css/.cvsignore                          |    1 -
 trunk/docs/css/README.txt                          |   10 -
 trunk/docs/css/eventTable-1.0.css                  |   76 -
 trunk/docs/css/site.css                            |  140 --
 trunk/docs/documentation.html                      |  274 ---
 trunk/docs/download.html                           |  418 -----
 trunk/docs/earlier.html                            |  133 --
 trunk/docs/faq.html                                | 1898 -------------------
 trunk/docs/history.html                            |  145 --
 trunk/docs/images/ceki-72x101.gif                  |  Bin 7712 -> 0 bytes
 trunk/docs/images/chainsaw-fullscreen-small.jpg    |  Bin 55917 -> 0 bytes
 trunk/docs/images/chainsaw-fullscreen.jpg          |  Bin 208947 -> 0 bytes
 trunk/docs/images/coverSmall.png                   |  Bin 57875 -> 0 bytes
 trunk/docs/images/cyberlab15.gif                   |  Bin 238 -> 0 bytes
 trunk/docs/images/ecaward_finalist_logo.gif        |  Bin 3015 -> 0 bytes
 trunk/docs/images/logo.jpg                         |  Bin 8184 -> 0 bytes
 trunk/docs/images/mark-72x99.gif                   |  Bin 2206 -> 0 bytes
 trunk/docs/images/psmith.jpg                       |  Bin 8052 -> 0 bytes
 trunk/docs/images/yshapira.bmp                     |  Bin 31514 -> 0 bytes
 trunk/docs/index.html                              |  170 --
 trunk/docs/install-chainsaw.html                   |  123 --
 trunk/docs/manual.html                             | 1213 ------------
 trunk/docs/od.gif                                  |  Bin 5741 -> 0 bytes
 trunk/docs/overview.html                           |   12 -
 trunk/docs/plan.html                               |  386 ----
 trunk/docs/praise.html                             |  266 ---
 trunk/docs/ugli.html                               |  128 --
 trunk/examples/.cvsignore                          |    2 -
 trunk/examples/src/customLevel/XLevel.java         |   73 -
 trunk/examples/src/factor/NumberCruncher.java      |   21 -
 .../examples/src/factor/NumberCruncherClient.java  |  106 --
 .../examples/src/factor/NumberCruncherServer.java  |  172 --
 trunk/examples/src/factor/factor.html              |   66 -
 trunk/examples/src/factor/factor.lcf               |   27 -
 trunk/examples/src/joran/calculator/AddAction.java |   77 -
 .../examples/src/joran/calculator/Calculator1.java |   85 -
 .../examples/src/joran/calculator/Calculator2.java |   75 -
 .../src/joran/calculator/ComputationAction1.java   |   62 -
 .../src/joran/calculator/ComputationAction2.java   |   89 -
 .../src/joran/calculator/LiteralAction.java        |   67 -
 .../src/joran/calculator/MultiplyAction.java       |   77 -
 .../examples/src/joran/calculator/calculator1.xml  |    6 -
 .../examples/src/joran/calculator/calculator2.xml  |   10 -
 .../examples/src/joran/calculator/calculator3.xml  |   18 -
 .../examples/src/joran/helloWorld/HelloWorld.java  |   63 -
 .../src/joran/helloWorld/HelloWorldAction.java     |   40 -
 trunk/examples/src/joran/helloWorld/hello.xml      |    5 -
 trunk/examples/src/joran/implicit/NOPAction.java   |   39 -
 trunk/examples/src/joran/implicit/PrintMe.java     |   82 -
 .../src/joran/implicit/PrintMeImplicitAction.java  |   50 -
 trunk/examples/src/joran/implicit/implicit1.xml    |   24 -
 .../src/joran/newRule/NewRuleCalculator.java       |   85 -
 trunk/examples/src/objectBased/Base.java           |   44 -
 trunk/examples/src/objectBased/ChildOne.java       |   32 -
 trunk/examples/src/objectBased/ChildTwo.java       |   32 -
 trunk/examples/src/objectBased/Test.java           |   39 -
 trunk/examples/src/package.html                    |   37 -
 .../src/pattern/CountingPatternConverter.java      |   35 -
 trunk/examples/src/pattern/LearnNewWord.java       |   53 -
 trunk/examples/src/pattern/log4j-config.xml        |   19 -
 trunk/examples/src/sort/Sort.java                  |   97 -
 trunk/examples/src/sort/SortAlgo.java              |   86 -
 trunk/examples/src/sort/sort1.properties           |   26 -
 trunk/examples/src/sort/sort2.properties           |   55 -
 trunk/examples/src/sort/sort3.properties           |   32 -
 trunk/examples/src/sort/sort4.properties           |   32 -
 trunk/examples/src/subclass/MyLogger.java          |   71 -
 trunk/examples/src/subclass/MyLoggerFactory.java   |   42 -
 trunk/examples/src/subclass/MyLoggerTest.java      |   86 -
 trunk/examples/src/subclass/mycat.bad              |   18 -
 trunk/examples/src/subclass/mycat.good             |   24 -
 trunk/examples/src/trivial/Trivial.java            |   75 -
 trunk/examples/tiny-webapp/Hello/.cvsignore        |    2 -
 trunk/examples/tiny-webapp/Hello/README.txt        |   12 -
 .../Hello/WebRoot/WEB-INF/classes/.cvsignore       |    1 -
 .../Hello/WebRoot/WEB-INF/classes/hello-log4j.xml  |   19 -
 .../tiny-webapp/Hello/WebRoot/WEB-INF/web.xml      |   42 -
 .../examples/tiny-webapp/Hello/WebRoot/index.html  |   11 -
 .../tiny-webapp/Hello/build.properties.sample      |   10 -
 trunk/examples/tiny-webapp/Hello/build.xml         |   54 -
 .../Hello/src/java/wombat/HelloServlet.java        |   33 -
 .../Hello/src/java/wombat/InitServlet.java         |   19 -
 trunk/examples/tiny-webapp/INSTALL.txt             |  161 --
 trunk/examples/tiny-webapp/Tata/.cvsignore         |    3 -
 trunk/examples/tiny-webapp/Tata/README.txt         |   12 -
 .../Tata/WebRoot/WEB-INF/classes/.cvsignore        |    1 -
 .../Tata/WebRoot/WEB-INF/classes/tata-log4j.xml    |   18 -
 .../tiny-webapp/Tata/WebRoot/WEB-INF/web.xml       |   41 -
 trunk/examples/tiny-webapp/Tata/WebRoot/index.html |   11 -
 .../tiny-webapp/Tata/build.properties.sample       |   14 -
 trunk/examples/tiny-webapp/Tata/build.xml          |   54 -
 .../Tata/src/java/wombat/InitServlet.java          |   19 -
 .../Tata/src/java/wombat/TataServlet.java          |   33 -
 trunk/packaging/.functions                         |   40 -
 trunk/packaging/install                            |  189 --
 trunk/packaging/package-list                       |   59 -
 trunk/packaging/tarmake                            |   72 -
 trunk/pom.xml                                      |  181 --
 trunk/src/changes/changes.xml                      |    1 -
 trunk/src/java/org/apache/log4j/Appender.java      |  135 --
 .../java/org/apache/log4j/AppenderSkeleton.java    |  351 ----
 trunk/src/java/org/apache/log4j/AsyncAppender.java |  342 ----
 .../java/org/apache/log4j/BasicConfigurator.java   |   66 -
 trunk/src/java/org/apache/log4j/Category.java      | 1444 ---------------
 trunk/src/java/org/apache/log4j/CategoryKey.java   |   48 -
 .../src/java/org/apache/log4j/ConsoleAppender.java |  212 ---
 .../org/apache/log4j/DailyRollingFileAppender.java |  356 ----
 .../org/apache/log4j/DefaultCategoryFactory.java   |   29 -
 trunk/src/java/org/apache/log4j/FileAppender.java  |  323 ----
 trunk/src/java/org/apache/log4j/HTMLLayout.java    |  465 -----
 trunk/src/java/org/apache/log4j/Hierarchy.java     |  845 ---------
 trunk/src/java/org/apache/log4j/Layout.java        |  125 --
 trunk/src/java/org/apache/log4j/Level.java         |  290 ---
 trunk/src/java/org/apache/log4j/LogManager.java    |  290 ---
 trunk/src/java/org/apache/log4j/Logger.java        |  230 ---
 trunk/src/java/org/apache/log4j/MDC.java           |  143 --
 trunk/src/java/org/apache/log4j/NDC.java           |  329 ----
 trunk/src/java/org/apache/log4j/PatternLayout.java |  578 ------
 trunk/src/java/org/apache/log4j/Priority.java      |  249 ---
 .../org/apache/log4j/PropertyConfigurator.java     |  718 --------
 trunk/src/java/org/apache/log4j/ProvisionNode.java |   27 -
 .../java/org/apache/log4j/RollingFileAppender.java |  423 -----
 trunk/src/java/org/apache/log4j/SimpleLayout.java  |   64 -
 trunk/src/java/org/apache/log4j/TTCCLayout.java    |  185 --
 trunk/src/java/org/apache/log4j/ULogger.java       |   89 -
 .../src/java/org/apache/log4j/WriterAppender.java  |  432 -----
 trunk/src/java/org/apache/log4j/concurrency.txt    |   30 -
 .../org/apache/log4j/config/ConfigWatchdog.java    |  107 --
 .../org/apache/log4j/config/ConfiguratorBase.java  |  141 --
 .../org/apache/log4j/config/PropertyGetter.java    |   92 -
 .../org/apache/log4j/config/PropertyPrinter.java   |  156 --
 .../org/apache/log4j/config/PropertySetter.java    |  419 -----
 .../log4j/config/PropertySetterException.java      |   52 -
 .../src/java/org/apache/log4j/config/package.html  |    6 -
 .../java/org/apache/log4j/db/ConnectionSource.java |   68 -
 .../apache/log4j/db/ConnectionSourceSkeleton.java  |  109 --
 .../org/apache/log4j/db/CustomSQLDBReceiver.java   |  442 -----
 trunk/src/java/org/apache/log4j/db/DBAppender.java |  375 ----
 trunk/src/java/org/apache/log4j/db/DBHelper.java   |   67 -
 trunk/src/java/org/apache/log4j/db/DBReceiver.java |  118 --
 .../java/org/apache/log4j/db/DBReceiverJob.java    |  229 ---
 .../log4j/db/DataSourceConnectionSource.java       |   85 -
 .../log4j/db/DriverManagerConnectionSource.java    |  132 --
 .../org/apache/log4j/db/JNDIConnectionSource.java  |  142 --
 .../org/apache/log4j/db/dialect/HSQLDBDialect.java |   30 -
 .../org/apache/log4j/db/dialect/MsSQLDialect.java  |   33 -
 .../org/apache/log4j/db/dialect/MySQLDialect.java  |   31 -
 .../org/apache/log4j/db/dialect/OracleDialect.java |   32 -
 .../apache/log4j/db/dialect/PostgreSQLDialect.java |   34 -
 .../org/apache/log4j/db/dialect/SQLDialect.java    |   26 -
 .../src/java/org/apache/log4j/db/dialect/Util.java |  124 --
 trunk/src/java/org/apache/log4j/db/dialect/db2.sql |   49 -
 .../src/java/org/apache/log4j/db/dialect/db2l.sql  |   47 -
 .../java/org/apache/log4j/db/dialect/hsqldb.sql    |   46 -
 .../src/java/org/apache/log4j/db/dialect/mssql.sql |   45 -
 .../src/java/org/apache/log4j/db/dialect/mysql.sql |   54 -
 .../java/org/apache/log4j/db/dialect/oracle.sql    |   67 -
 .../org/apache/log4j/db/dialect/postgresql.sql     |   48 -
 trunk/src/java/org/apache/log4j/db/package.html    |   20 -
 .../java/org/apache/log4j/filter/AndFilter.java    |  111 --
 .../org/apache/log4j/filter/DenyAllFilter.java     |   71 -
 .../org/apache/log4j/filter/ExpressionFilter.java  |  111 --
 .../org/apache/log4j/filter/LevelMatchFilter.java  |   99 -
 .../org/apache/log4j/filter/LevelRangeFilter.java  |  143 --
 .../apache/log4j/filter/LocationInfoFilter.java    |   85 -
 .../java/org/apache/log4j/filter/MapFilter.java    |   61 -
 .../org/apache/log4j/filter/PropertyFilter.java    |   75 -
 .../org/apache/log4j/filter/ReflectionFilter.java  |   81 -
 .../org/apache/log4j/filter/StringMatchFilter.java |   84 -
 .../log4j/helpers/AbsoluteTimeDateFormat.java      |  115 --
 .../log4j/helpers/AppenderAttachableImpl.java      |  185 --
 .../java/org/apache/log4j/helpers/BoundedFIFO.java |  180 --
 .../java/org/apache/log4j/helpers/Constants.java   |   67 -
 .../apache/log4j/helpers/CountingQuietWriter.java  |   67 -
 .../org/apache/log4j/helpers/CyclicBuffer.java     |  158 --
 .../java/org/apache/log4j/helpers/DateLayout.java  |  207 ---
 .../apache/log4j/helpers/DateTimeDateFormat.java   |   56 -
 .../org/apache/log4j/helpers/FileWatchdog.java     |  111 --
 .../apache/log4j/helpers/ISO8601DateFormat.java    |   60 -
 .../apache/log4j/helpers/IntializationUtil.java    |  138 --
 .../java/org/apache/log4j/helpers/JNDIUtil.java    |   44 -
 .../src/java/org/apache/log4j/helpers/Loader.java  |  175 --
 .../src/java/org/apache/log4j/helpers/LogLog.java  |  173 --
 .../org/apache/log4j/helpers/LoggerTraverse.java   |  329 ----
 .../org/apache/log4j/helpers/MessageFormatter.java |  126 --
 .../org/apache/log4j/helpers/NullEnumeration.java  |   49 -
 .../apache/log4j/helpers/OnlyOnceErrorHandler.java |   42 -
 .../src/java/org/apache/log4j/helpers/Option.java  |   30 -
 .../org/apache/log4j/helpers/OptionConverter.java  |  577 ------
 .../org/apache/log4j/helpers/PlatformInfo.java     |   86 -
 .../java/org/apache/log4j/helpers/QuietWriter.java |   83 -
 .../org/apache/log4j/helpers/ReaderWriterLock.java |  129 --
 .../log4j/helpers/RelativeTimeDateFormat.java      |   72 -
 .../apache/log4j/helpers/SyslogQuietWriter.java    |   61 -
 .../org/apache/log4j/helpers/SyslogWriter.java     |   91 -
 .../org/apache/log4j/helpers/ThreadLocalMap.java   |   39 -
 .../java/org/apache/log4j/helpers/Transform.java   |  108 --
 .../org/apache/log4j/helpers/UtilLoggingLevel.java |  145 --
 .../src/java/org/apache/log4j/helpers/package.html |   16 -
 .../java/org/apache/log4j/jdbc/JDBCAppender.java   |  358 ----
 .../org/apache/log4j/jmx/AbstractDynamicMBean.java |  130 --
 trunk/src/java/org/apache/log4j/jmx/Agent.java     |   54 -
 .../org/apache/log4j/jmx/AppenderDynamicMBean.java |  320 ----
 .../apache/log4j/jmx/HierarchyDynamicMBean.java    |  299 ---
 .../org/apache/log4j/jmx/LayoutDynamicMBean.java   |  255 ---
 .../org/apache/log4j/jmx/LoggerDynamicMBean.java   |  278 ---
 .../src/java/org/apache/log4j/jmx/MethodUnion.java |   31 -
 trunk/src/java/org/apache/log4j/jmx/package.html   |    7 -
 .../org/apache/log4j/joran/JoranConfigurator.java  |  245 ---
 .../java/org/apache/log4j/joran/action/Action.java |   81 -
 .../org/apache/log4j/joran/action/ActionConst.java |   27 -
 .../apache/log4j/joran/action/AppenderAction.java  |  119 --
 .../log4j/joran/action/AppenderRefAction.java      |  104 --
 .../log4j/joran/action/ConfigurationAction.java    |   55 -
 .../log4j/joran/action/ConversionRuleAction.java   |  104 --
 .../apache/log4j/joran/action/ImplicitAction.java  |   50 -
 .../action/JndiSubstitutionPropertyAction.java     |  121 --
 .../apache/log4j/joran/action/LayoutAction.java    |  103 --
 .../org/apache/log4j/joran/action/LevelAction.java |   84 -
 .../apache/log4j/joran/action/LoggerAction.java    |  109 --
 .../apache/log4j/joran/action/NestComponentIA.java |  184 --
 .../apache/log4j/joran/action/NewRuleAction.java   |   77 -
 .../org/apache/log4j/joran/action/ParamAction.java |   71 -
 .../apache/log4j/joran/action/PluginAction.java    |  110 --
 .../apache/log4j/joran/action/PriorityAction.java  |   19 -
 .../apache/log4j/joran/action/PropertyAction.java  |   92 -
 .../joran/action/RepositoryPropertyAction.java     |   48 -
 .../log4j/joran/action/RootLoggerAction.java       |   68 -
 .../joran/action/SubstitutionPropertyAction.java   |   40 -
 .../apache/log4j/joran/spi/ActionException.java    |   59 -
 .../apache/log4j/joran/spi/ExecutionContext.java   |  155 --
 .../org/apache/log4j/joran/spi/Interpreter.java    |  408 -----
 .../org/apache/log4j/joran/spi/JoranDocument.java  |  229 ---
 .../java/org/apache/log4j/joran/spi/Pattern.java   |  185 --
 .../java/org/apache/log4j/joran/spi/RuleStore.java |   28 -
 .../apache/log4j/joran/spi/SimpleRuleStore.java    |  105 --
 .../java/org/apache/log4j/lbel/EventEvaluator.java |   48 -
 .../org/apache/log4j/lbel/LBELEventEvaluator.java  |   73 -
 trunk/src/java/org/apache/log4j/lbel/Node.java     |   84 -
 trunk/src/java/org/apache/log4j/lbel/Operator.java |   85 -
 trunk/src/java/org/apache/log4j/lbel/Parser.java   |  298 ---
 .../src/java/org/apache/log4j/lbel/ScanError.java  |   19 -
 trunk/src/java/org/apache/log4j/lbel/Token.java    |   79 -
 .../java/org/apache/log4j/lbel/TokenStream.java    |  200 --
 .../log4j/lbel/comparator/ClassComparator.java     |   45 -
 .../apache/log4j/lbel/comparator/Comparator.java   |   39 -
 .../log4j/lbel/comparator/LevelComparator.java     |   62 -
 .../log4j/lbel/comparator/LoggerComparator.java    |   43 -
 .../log4j/lbel/comparator/MessageComparator.java   |   43 -
 .../log4j/lbel/comparator/MethodComparator.java    |   45 -
 .../log4j/lbel/comparator/PropertyComparator.java  |   49 -
 .../log4j/lbel/comparator/StringComparator.java    |  143 --
 .../log4j/lbel/comparator/TimestampComparator.java |   52 -
 .../apache/log4j/multiplex/AppenderFactory.java    |   15 -
 .../log4j/multiplex/AppenderFactoryUtils.java      |   84 -
 .../org/apache/log4j/multiplex/MDCKeySelector.java |   54 -
 .../apache/log4j/multiplex/MultiplexAppender.java  |   88 -
 .../apache/log4j/multiplex/MultiplexSelector.java  |   21 -
 .../log4j/multiplex/MultiplexSelectorSkeleton.java |   57 -
 .../java/org/apache/log4j/net/AddressBased.java    |   34 -
 .../src/java/org/apache/log4j/net/JMSAppender.java |  440 -----
 .../src/java/org/apache/log4j/net/JMSReceiver.java |  299 ---
 .../org/apache/log4j/net/JMSReceiverBeanInfo.java  |   51 -
 trunk/src/java/org/apache/log4j/net/JMSSink.java   |  156 --
 .../org/apache/log4j/net/MulticastAppender.java    |  310 ----
 .../org/apache/log4j/net/MulticastReceiver.java    |  255 ---
 .../log4j/net/MulticastReceiverBeanInfo.java       |   49 -
 .../java/org/apache/log4j/net/NetworkBased.java    |   15 -
 trunk/src/java/org/apache/log4j/net/PortBased.java |   33 -
 .../java/org/apache/log4j/net/SMTPAppender.java    |  499 -----
 .../org/apache/log4j/net/SimpleSocketServer.java   |   95 -
 .../java/org/apache/log4j/net/SocketAppender.java  |  444 -----
 .../org/apache/log4j/net/SocketHubAppender.java    |  420 -----
 .../org/apache/log4j/net/SocketHubReceiver.java    |  295 ---
 .../log4j/net/SocketHubReceiverBeanInfo.java       |   50 -
 .../src/java/org/apache/log4j/net/SocketNode.java  |  231 ---
 .../apache/log4j/net/SocketNodeEventListener.java  |   41 -
 .../java/org/apache/log4j/net/SocketReceiver.java  |  400 ----
 .../java/org/apache/log4j/net/SocketServer.java    |  217 ---
 .../java/org/apache/log4j/net/SyslogAppender.java  |  427 -----
 .../java/org/apache/log4j/net/TelnetAppender.java  |  222 ---
 .../src/java/org/apache/log4j/net/UDPAppender.java |  326 ----
 .../src/java/org/apache/log4j/net/UDPReceiver.java |  252 ---
 .../java/org/apache/log4j/net/XMLSocketNode.java   |  209 ---
 .../org/apache/log4j/net/XMLSocketReceiver.java    |  274 ---
 trunk/src/java/org/apache/log4j/net/package.html   |   13 -
 trunk/src/java/org/apache/log4j/net/test/Loop.java |   69 -
 .../java/org/apache/log4j/net/test/SMTPMin.java    |   64 -
 .../java/org/apache/log4j/net/test/SocketMin.java  |  111 --
 .../java/org/apache/log4j/net/test/SyslogMin.java  |   69 -
 .../log4j/net/test/intermediarySocketServer.lcf    |   23 -
 trunk/src/java/org/apache/log4j/net/test/jms.lcf   |    6 -
 .../src/java/org/apache/log4j/net/test/logging.lcf |    9 -
 trunk/src/java/org/apache/log4j/net/test/loop.lcf  |    9 -
 .../org/apache/log4j/net/test/socketClient.lcf     |   20 -
 .../org/apache/log4j/net/test/socketServer.lcf     |   12 -
 .../src/java/org/apache/log4j/net/test/syslog.lcf  |   20 -
 trunk/src/java/org/apache/log4j/net/test/syslogMin |   21 -
 .../java/org/apache/log4j/nt/EventLogCategories.mc |   24 -
 .../org/apache/log4j/nt/NTEventLogAppender.java    |  176 --
 .../java/org/apache/log4j/nt/NTEventLogAppender.rc |  102 --
 trunk/src/java/org/apache/log4j/nt/nteventlog.cpp  |  245 ---
 trunk/src/java/org/apache/log4j/nt/package.html    |   15 -
 .../java/org/apache/log4j/or/DefaultRenderer.java  |   36 -
 .../java/org/apache/log4j/or/ObjectRenderer.java   |   30 -
 .../src/java/org/apache/log4j/or/RendererMap.java  |  219 ---
 .../org/apache/log4j/or/ThreadGroupRenderer.java   |   76 -
 .../org/apache/log4j/or/jms/MessageRenderer.java   |   88 -
 .../src/java/org/apache/log4j/or/jms/package.html  |    7 -
 trunk/src/java/org/apache/log4j/or/package.html    |   13 -
 .../apache/log4j/or/sax/AttributesRenderer.java    |   61 -
 .../src/java/org/apache/log4j/or/sax/package.html  |    7 -
 trunk/src/java/org/apache/log4j/package.html       |   11 -
 .../org/apache/log4j/pattern/CachedDateFormat.java |  372 ----
 .../log4j/pattern/ClassNamePatternConverter.java   |   69 -
 .../apache/log4j/pattern/DatePatternConverter.java |  136 --
 .../log4j/pattern/FileDatePatternConverter.java    |   52 -
 .../pattern/FileLocationPatternConverter.java      |   66 -
 .../org/apache/log4j/pattern/FormattingInfo.java   |  134 --
 .../pattern/FullLocationPatternConverter.java      |   66 -
 .../log4j/pattern/IntegerPatternConverter.java     |   67 -
 .../log4j/pattern/LevelPatternConverter.java       |   95 -
 .../pattern/LineLocationPatternConverter.java      |   66 -
 .../pattern/LineSeparatorPatternConverter.java     |   75 -
 .../log4j/pattern/LiteralPatternConverter.java     |   57 -
 .../log4j/pattern/LoggerPatternConverter.java      |   69 -
 .../pattern/LoggingEventPatternConverter.java      |   70 -
 .../log4j/pattern/MessagePatternConverter.java     |   60 -
 .../pattern/MethodLocationPatternConverter.java    |   66 -
 .../apache/log4j/pattern/NDCPatternConverter.java  |   60 -
 .../org/apache/log4j/pattern/NameAbbreviator.java  |  305 ---
 .../apache/log4j/pattern/NamePatternConverter.java |   61 -
 .../org/apache/log4j/pattern/PatternConverter.java |   87 -
 .../org/apache/log4j/pattern/PatternParser.java    |  707 -------
 .../log4j/pattern/PropertiesPatternConverter.java  |  100 -
 .../pattern/RelativeTimePatternConverter.java      |  108 --
 .../pattern/SequenceNumberPatternConverter.java    |   61 -
 .../log4j/pattern/ThreadPatternConverter.java      |   60 -
 .../ThrowableInformationPatternConverter.java      |  102 --
 .../src/java/org/apache/log4j/pattern/package.html |   11 -
 .../java/org/apache/log4j/plugins/Pauseable.java   |   30 -
 .../src/java/org/apache/log4j/plugins/Plugin.java  |  140 --
 .../java/org/apache/log4j/plugins/PluginEvent.java |   45 -
 .../org/apache/log4j/plugins/PluginListener.java   |   34 -
 .../org/apache/log4j/plugins/PluginRegistry.java   |  280 ---
 .../org/apache/log4j/plugins/PluginSkeleton.java   |  184 --
 .../java/org/apache/log4j/plugins/Receiver.java    |  123 --
 .../log4j/rolling/FilterBasedTriggeringPolicy.java |  121 --
 .../log4j/rolling/FixedWindowRollingPolicy.java    |  333 ----
 .../apache/log4j/rolling/RollingFileAppender.java  |  478 -----
 .../org/apache/log4j/rolling/RollingPolicy.java    |   55 -
 .../apache/log4j/rolling/RollingPolicyBase.java    |  178 --
 .../apache/log4j/rolling/RolloverDescription.java  |   57 -
 .../log4j/rolling/RolloverDescriptionImpl.java     |  107 --
 .../log4j/rolling/SizeBasedTriggeringPolicy.java   |   84 -
 .../log4j/rolling/TimeBasedRollingPolicy.java      |  282 ---
 .../org/apache/log4j/rolling/TriggeringPolicy.java |   48 -
 .../org/apache/log4j/rolling/helper/Action.java    |   50 -
 .../apache/log4j/rolling/helper/ActionBase.java    |   91 -
 .../log4j/rolling/helper/CompositeAction.java      |  112 --
 .../log4j/rolling/helper/FileRenameAction.java     |   82 -
 .../log4j/rolling/helper/GZCompressAction.java     |  143 --
 .../log4j/rolling/helper/ZipCompressAction.java    |  146 --
 .../org/apache/log4j/rolling/helper/package.html   |   11 -
 .../src/java/org/apache/log4j/rolling/package.html |   20 -
 .../java/org/apache/log4j/rule/AbstractRule.java   |   56 -
 trunk/src/java/org/apache/log4j/rule/AndRule.java  |   60 -
 .../src/java/org/apache/log4j/rule/ColorRule.java  |   68 -
 .../src/java/org/apache/log4j/rule/EqualsRule.java |   75 -
 .../src/java/org/apache/log4j/rule/ExistsRule.java |   64 -
 .../java/org/apache/log4j/rule/ExpressionRule.java |  140 --
 .../java/org/apache/log4j/rule/InFixToPostFix.java |  190 --
 .../java/org/apache/log4j/rule/InequalityRule.java |  103 --
 .../org/apache/log4j/rule/LevelEqualsRule.java     |  102 --
 .../org/apache/log4j/rule/LevelInequalityRule.java |  145 --
 trunk/src/java/org/apache/log4j/rule/LikeRule.java |  112 --
 .../java/org/apache/log4j/rule/NotEqualsRule.java  |   69 -
 trunk/src/java/org/apache/log4j/rule/NotRule.java  |   55 -
 trunk/src/java/org/apache/log4j/rule/OrRule.java   |   59 -
 .../apache/log4j/rule/PartialTextMatchRule.java    |   70 -
 trunk/src/java/org/apache/log4j/rule/Rule.java     |   59 -
 .../java/org/apache/log4j/rule/RuleFactory.java    |  142 --
 .../org/apache/log4j/rule/TimestampEqualsRule.java |   81 -
 .../apache/log4j/rule/TimestampInequalityRule.java |  100 -
 trunk/src/java/org/apache/log4j/scheduler/Job.java |   32 -
 .../java/org/apache/log4j/scheduler/Scheduler.java |  234 ---
 .../apache/log4j/selector/ContextJNDISelector.java |  214 ---
 .../java/org/apache/log4j/selector/package.html    |   19 -
 .../selector/servlet/ContextDetachingSCL.java      |   99 -
 .../org/apache/log4j/spi/AppenderAttachable.java   |   66 -
 trunk/src/java/org/apache/log4j/spi/Component.java |   29 -
 .../java/org/apache/log4j/spi/ComponentBase.java   |   97 -
 .../java/org/apache/log4j/spi/Configurator.java    |   54 -
 trunk/src/java/org/apache/log4j/spi/Decoder.java   |   42 -
 .../log4j/spi/DefaultRepositorySelector.java       |   41 -
 trunk/src/java/org/apache/log4j/spi/ErrorCode.java |   35 -
 .../java/org/apache/log4j/spi/ErrorHandler.java    |   44 -
 trunk/src/java/org/apache/log4j/spi/ErrorItem.java |  113 --
 trunk/src/java/org/apache/log4j/spi/Filter.java    |  117 --
 .../apache/log4j/spi/HierarchyEventListener.java   |   38 -
 .../log4j/spi/HierarchyEventListenerAdapter.java   |   75 -
 .../java/org/apache/log4j/spi/LocationInfo.java    |  200 --
 .../org/apache/log4j/spi/LoggerEventListener.java  |   59 -
 .../java/org/apache/log4j/spi/LoggerFactory.java   |   35 -
 .../org/apache/log4j/spi/LoggerRepository.java     |   91 -
 .../log4j/spi/LoggerRepositoryEventListener.java   |   47 -
 .../org/apache/log4j/spi/LoggerRepositoryEx.java   |  192 --
 .../java/org/apache/log4j/spi/LoggingEvent.java    |  967 ----------
 .../log4j/spi/LoggingEventFieldResolver.java       |  177 --
 .../src/java/org/apache/log4j/spi/NOPULogger.java  |  186 --
 .../java/org/apache/log4j/spi/OptionHandler.java   |   41 -
 .../java/org/apache/log4j/spi/RendererSupport.java |   27 -
 .../org/apache/log4j/spi/RepositorySelector.java   |   42 -
 .../org/apache/log4j/spi/RepositorySelectorEx.java |   53 -
 .../java/org/apache/log4j/spi/RootCategory.java    |   72 -
 .../src/java/org/apache/log4j/spi/RootLogger.java  |   71 -
 .../java/org/apache/log4j/spi/SimpleULogger.java   |  285 ---
 .../java/org/apache/log4j/spi/Thresholdable.java   |   55 -
 .../org/apache/log4j/spi/ThrowableInformation.java |  235 ---
 .../apache/log4j/spi/TriggeringEventEvaluator.java |   39 -
 .../apache/log4j/spi/location/LegacyExtractor.java |  211 ---
 .../spi/location/StackTraceElementExtractor.java   |  140 --
 trunk/src/java/org/apache/log4j/spi/package.html   |   12 -
 .../org/apache/log4j/test/witness/confParsing.1    |    2 -
 .../org/apache/log4j/test/witness/confParsing.10   |    2 -
 .../org/apache/log4j/test/witness/confParsing.11   |    2 -
 .../org/apache/log4j/test/witness/confParsing.2    |    2 -
 .../org/apache/log4j/test/witness/confParsing.3    |    1 -
 .../org/apache/log4j/test/witness/confParsing.4    |    3 -
 .../org/apache/log4j/test/witness/confParsing.5    |    3 -
 .../org/apache/log4j/test/witness/confParsing.6    |    2 -
 .../org/apache/log4j/test/witness/confParsing.7    |    3 -
 .../org/apache/log4j/test/witness/confParsing.8    |    2 -
 .../org/apache/log4j/test/witness/confParsing.9    |    2 -
 .../java/org/apache/log4j/test/witness/customCat.1 |    6 -
 .../java/org/apache/log4j/test/witness/definit.1   |    1 -
 .../java/org/apache/log4j/test/witness/definit.2   |    0
 .../java/org/apache/log4j/test/witness/definit.3   |    0
 .../java/org/apache/log4j/test/witness/definit.4   |    0
 .../java/org/apache/log4j/test/witness/definit.5   |    1 -
 .../java/org/apache/log4j/test/witness/definit.6   |    1 -
 .../java/org/apache/log4j/test/witness/domTest.10  |    2 -
 .../java/org/apache/log4j/test/witness/domTest.11  |    2 -
 .../java/org/apache/log4j/test/witness/domTest.12  |   24 -
 .../java/org/apache/log4j/test/witness/domTest.4   |   12 -
 .../java/org/apache/log4j/test/witness/domTest.5   |   26 -
 .../java/org/apache/log4j/test/witness/domTest.6   |    4 -
 .../java/org/apache/log4j/test/witness/domTest.7   |   24 -
 .../java/org/apache/log4j/test/witness/domTest.8   |    6 -
 .../java/org/apache/log4j/test/witness/domTest.9   |    0
 .../org/apache/log4j/test/witness/domTest.A1.1     |   39 -
 .../org/apache/log4j/test/witness/domTest.A1.2     |    0
 .../org/apache/log4j/test/witness/domTest.A1.3     |    0
 .../org/apache/log4j/test/witness/domTest.A2.1     |   26 -
 .../org/apache/log4j/test/witness/domTest.A2.2     |    0
 .../org/apache/log4j/test/witness/domTest.A2.3     |    4 -
 .../org/apache/log4j/test/witness/enableFlagTest.1 |    0
 .../org/apache/log4j/test/witness/enableFlagTest.2 |    1 -
 .../org/apache/log4j/test/witness/enableFlagTest.3 |    2 -
 .../org/apache/log4j/test/witness/enableFlagTest.4 |    3 -
 .../org/apache/log4j/test/witness/enableFlagTest.5 |    4 -
 .../org/apache/log4j/test/witness/enableFlagTest.6 |    5 -
 .../org/apache/log4j/test/witness/enableFlagTest.7 |    5 -
 .../src/java/org/apache/log4j/test/witness/fqcn.1  |    3 -
 .../org/apache/log4j/test/witness/getOptions.1     |   11 -
 trunk/src/java/org/apache/log4j/test/witness/l7d.1 |   21 -
 .../src/java/org/apache/log4j/test/witness/mycat.1 |    1 -
 .../src/java/org/apache/log4j/test/witness/mycat.2 |    0
 .../src/java/org/apache/log4j/test/witness/mycat.3 |    1 -
 .../java/org/apache/log4j/test/witness/propCfg.1   |    1 -
 .../java/org/apache/log4j/test/witness/propCfg.2   |    1 -
 .../org/apache/log4j/test/witness/shallow.1000     |   50 -
 .../org/apache/log4j/test/witness/shallow.1001     |   50 -
 .../org/apache/log4j/test/witness/shallow.A1.1     |   50 -
 .../org/apache/log4j/test/witness/shallow.A1.2     |   45 -
 .../org/apache/log4j/test/witness/shallow.A1.3     |   50 -
 .../org/apache/log4j/test/witness/shallow.A1.4     |   40 -
 .../org/apache/log4j/test/witness/shallow.A1.5     |   40 -
 .../org/apache/log4j/test/witness/shallow.A1.6     |   40 -
 .../org/apache/log4j/test/witness/shallow.A1.7     |   25 -
 .../org/apache/log4j/test/witness/shallow.A1.8     |   15 -
 .../org/apache/log4j/test/witness/shallow.A2.1     |   25 -
 .../org/apache/log4j/test/witness/shallow.A2.2     |   25 -
 .../org/apache/log4j/test/witness/shallow.A2.3     |   25 -
 .../org/apache/log4j/test/witness/shallow.A2.4     |   20 -
 .../org/apache/log4j/test/witness/shallow.A2.5     |   15 -
 .../org/apache/log4j/test/witness/shallow.A2.6     |   15 -
 .../org/apache/log4j/test/witness/shallow.A2.7     |   15 -
 .../org/apache/log4j/test/witness/shallow.A2.8     |   25 -
 .../java/org/apache/log4j/test/xml/domTest1.xml    |   34 -
 .../java/org/apache/log4j/test/xml/domTest10.xml   |   31 -
 .../java/org/apache/log4j/test/xml/domTest11.xml   |   28 -
 .../java/org/apache/log4j/test/xml/domTest12.xml   |   24 -
 .../java/org/apache/log4j/test/xml/domTest2.xml    |   26 -
 .../java/org/apache/log4j/test/xml/domTest3.xml    |   41 -
 .../java/org/apache/log4j/test/xml/domTest4.xml    |   21 -
 .../java/org/apache/log4j/test/xml/domTest5.xml    |   18 -
 .../java/org/apache/log4j/test/xml/domTest6.xml    |   30 -
 .../java/org/apache/log4j/test/xml/domTest7.xml    |   24 -
 .../java/org/apache/log4j/test/xml/domTest8.xml    |   42 -
 .../java/org/apache/log4j/test/xml/domTest9.xml    |   32 -
 trunk/src/java/org/apache/log4j/test/xml/ext1.xml  |   26 -
 .../java/org/apache/log4j/test/xml/fallback1.xml   |   35 -
 .../apache/log4j/test/xml/stressAsyncAppender.xml  |   43 -
 .../java/org/apache/log4j/varia/DenyAllFilter.java |   35 -
 .../log4j/varia/ExternallyRolledFileAppender.java  |  204 ---
 .../apache/log4j/varia/FallbackErrorHandler.java   |   42 -
 .../org/apache/log4j/varia/LevelMatchFilter.java   |   29 -
 .../org/apache/log4j/varia/LevelRangeFilter.java   |   28 -
 .../java/org/apache/log4j/varia/ListAppender.java  |  104 --
 .../org/apache/log4j/varia/ListModelAppender.java  |   81 -
 .../apache/log4j/varia/LogFilePatternReceiver.java |  827 ---------
 .../varia/LogFilePatternReceiverBeanInfo.java      |   48 -
 .../java/org/apache/log4j/varia/NullAppender.java  |   67 -
 trunk/src/java/org/apache/log4j/varia/Roller.java  |  117 --
 .../java/org/apache/log4j/varia/SoundAppender.java |  111 --
 .../org/apache/log4j/varia/StringMatchFilter.java  |   68 -
 trunk/src/java/org/apache/log4j/varia/package.html |   13 -
 .../org/apache/log4j/watchdog/FileWatchdog.java    |  103 --
 .../log4j/watchdog/TimedLocationWatchdog.java      |  109 --
 .../java/org/apache/log4j/watchdog/Watchdog.java   |   68 -
 .../apache/log4j/watchdog/WatchdogSkeleton.java    |  132 --
 trunk/src/java/org/apache/log4j/xml/.cvsignore     |    1 -
 .../java/org/apache/log4j/xml/DOMConfigurator.java |  180 --
 .../org/apache/log4j/xml/Log4jEntityResolver.java  |   61 -
 .../java/org/apache/log4j/xml/SAXErrorHandler.java |   46 -
 .../log4j/xml/UtilLoggingEntityResolver.java       |   55 -
 .../apache/log4j/xml/UtilLoggingXMLDecoder.java    |  422 -----
 .../src/java/org/apache/log4j/xml/XMLDecoder.java  |  428 -----
 trunk/src/java/org/apache/log4j/xml/XMLLayout.java |  221 ---
 .../java/org/apache/log4j/xml/examples/.cvsignore  |    1 -
 .../log4j/xml/examples/ReportParserError.java      |   33 -
 .../org/apache/log4j/xml/examples/XMLSample.java   |   87 -
 .../org/apache/log4j/xml/examples/extension1.xml   |   28 -
 .../org/apache/log4j/xml/examples/extension2.xml   |   35 -
 .../org/apache/log4j/xml/examples/package.html     |   26 -
 .../java/org/apache/log4j/xml/examples/sample1.xml |   22 -
 .../java/org/apache/log4j/xml/examples/sample2.xml |   31 -
 .../java/org/apache/log4j/xml/examples/sample3.xml |   28 -
 .../java/org/apache/log4j/xml/examples/sample4.xml |   22 -
 .../java/org/apache/log4j/xml/examples/sample5.xml |   34 -
 trunk/src/java/org/apache/log4j/xml/log4j.dtd      |  181 --
 trunk/src/java/org/apache/log4j/xml/logger.dtd     |   68 -
 trunk/src/java/org/apache/log4j/xml/package.html   |   16 -
 .../src/java/org/apache/log4j/xml/test/.cvsignore  |    3 -
 .../java/org/apache/log4j/xml/test/DOMTest.java    |   86 -
 .../src/java/org/apache/log4j/xml/test/testlog.xml |   23 -
 trunk/src/log4j-coding-convention.xml              |  225 ---
 trunk/src/site/fml/faq.fml                         |    9 -
 trunk/src/site/resources/images/logo.jpg           |  Bin 8184 -> 0 bytes
 trunk/src/site/resources/images/ls-logo.jpg        |  Bin 32725 -> 0 bytes
 trunk/src/site/site.xml                            |   26 -
 trunk/src/sun_checks.xml                           |  131 --
 trunk/src/xdocs/chainsaw.xml                       |  104 --
 trunk/src/xdocs/codes.xml                          |  151 --
 trunk/src/xdocs/contributors.xml                   |  160 --
 trunk/src/xdocs/documentation.xml                  |  190 --
 trunk/src/xdocs/download.xml                       |  346 ----
 trunk/src/xdocs/earlier.xml                        |   27 -
 trunk/src/xdocs/faq.xml                            | 1908 -------------------
 trunk/src/xdocs/history.xml                        |   39 -
 trunk/src/xdocs/index.xml                          |   71 -
 trunk/src/xdocs/install-chainsaw.xml               |  123 --
 trunk/src/xdocs/plan.xml                           |  288 ---
 trunk/src/xdocs/stylesheets/compatibility.xslt     |   76 -
 trunk/src/xdocs/stylesheets/lf5.xml                |   27 -
 trunk/src/xdocs/stylesheets/project.xml            |   32 -
 trunk/src/xdocs/stylesheets/site.vsl               |  318 ----
 trunk/src/xdocs/ugli.xml                           |   18 -
 trunk/tests/.cvsignore                             |    8 -
 trunk/tests/README                                 |  107 --
 trunk/tests/build.properties.sample                |   31 -
 trunk/tests/build.xml                              |  896 ---------
 trunk/tests/db.xml                                 |  232 ---
 trunk/tests/input/compress1.copy                   |   15 -
 trunk/tests/input/compress2.copy                   |  129 --
 trunk/tests/input/compress3.copy                   |  143 --
 trunk/tests/input/db/.cvsignore                    |    4 -
 trunk/tests/input/db/append-with-c3p0.xml          |   43 -
 trunk/tests/input/db/append-with-datasource1.xml   |   37 -
 .../tests/input/db/append-with-drivermanager1.xml  |   33 -
 trunk/tests/input/db/append-with-jndi1.xml         |   46 -
 .../input/db/append-with-pooled-datasource1.xml    |   42 -
 trunk/tests/input/db/deleteTables.sql              |    4 -
 trunk/tests/input/db/hsqldb.properties.sample      |   11 -
 trunk/tests/input/db/mysql.properties.sample       |   17 -
 trunk/tests/input/db/oracle.properties.sample      |   25 -
 trunk/tests/input/db/postgresql.properties.sample  |   28 -
 trunk/tests/input/db/read-with-datasource1.xml     |   52 -
 trunk/tests/input/db/read-with-drivermanager1.xml  |   40 -
 trunk/tests/input/db/read-with-jndi1.xml           |   45 -
 .../input/db/read-with-pooled-datasource1.xml      |   45 -
 trunk/tests/input/defaultInit3.properties          |    7 -
 trunk/tests/input/filter/simpleFilter1.xml         |   37 -
 trunk/tests/input/filter/simpleFilter2.xml         |   24 -
 trunk/tests/input/filter/simpleFilter3.xml         |   41 -
 trunk/tests/input/filter/simpleFilter4.xml         |   31 -
 trunk/tests/input/filter/simpleFilter5.xml         |   29 -
 trunk/tests/input/filter/simpleFilter6.xml         |   26 -
 trunk/tests/input/filter/simpleFilter7.xml         |   24 -
 .../input/hierarchy/hierarchyThreshold1.properties |   12 -
 .../input/hierarchy/hierarchyThreshold2.properties |    7 -
 .../input/hierarchy/hierarchyThreshold3.properties |    7 -
 .../input/hierarchy/hierarchyThreshold4.properties |    7 -
 .../input/hierarchy/hierarchyThreshold5.properties |    7 -
 .../input/hierarchy/hierarchyThreshold6.properties |   12 -
 .../input/hierarchy/hierarchyThreshold7.properties |   12 -
 .../input/hierarchy/hierarchyThreshold8.properties |   12 -
 trunk/tests/input/joran/asyncTest.xml              |   29 -
 trunk/tests/input/joran/badEnd1.xml                |   15 -
 trunk/tests/input/joran/badEnd2.xml                |   16 -
 trunk/tests/input/joran/basicLoop.xml              |    8 -
 trunk/tests/input/joran/conversionRule.xml         |   22 -
 trunk/tests/input/joran/exception1.xml             |   14 -
 trunk/tests/input/joran/illFormed.xml              |    8 -
 trunk/tests/input/joran/newRule1.xml               |   10 -
 trunk/tests/input/joran/parser1.xml                |   21 -
 trunk/tests/input/joran/parser2.xml                |   32 -
 trunk/tests/input/joran/parser3.xml                |   30 -
 trunk/tests/input/joran/simple1.xml                |   17 -
 trunk/tests/input/joran/simple2.xml                |   17 -
 trunk/tests/input/multiplex/configTest-1.xml       |   23 -
 trunk/tests/input/ndc/NDC1.properties              |   11 -
 trunk/tests/input/net/socketServer1.properties     |   14 -
 trunk/tests/input/net/socketServer2.properties     |   14 -
 trunk/tests/input/net/socketServer3.properties     |   11 -
 trunk/tests/input/net/socketServer4.properties     |   11 -
 trunk/tests/input/net/socketServer5.properties     |   11 -
 trunk/tests/input/net/socketServer6.properties     |   11 -
 trunk/tests/input/net/socketServer7.properties     |   11 -
 trunk/tests/input/net/socketServer8.properties     |   11 -
 .../input/pattern/patternLayout.mdc.1.properties   |   11 -
 .../tests/input/pattern/patternLayout1.properties  |   11 -
 .../tests/input/pattern/patternLayout10.properties |   11 -
 .../tests/input/pattern/patternLayout11.properties |   11 -
 .../tests/input/pattern/patternLayout12.properties |   11 -
 .../tests/input/pattern/patternLayout13.properties |   11 -
 .../tests/input/pattern/patternLayout14.properties |   11 -
 .../tests/input/pattern/patternLayout2.properties  |   11 -
 .../tests/input/pattern/patternLayout3.properties  |   11 -
 .../tests/input/pattern/patternLayout4.properties  |   11 -
 .../tests/input/pattern/patternLayout5.properties  |   11 -
 .../tests/input/pattern/patternLayout6.properties  |   12 -
 .../tests/input/pattern/patternLayout7.properties  |   11 -
 .../tests/input/pattern/patternLayout8.properties  |   11 -
 .../tests/input/pattern/patternLayout9.properties  |   11 -
 trunk/tests/input/performance/file-bufferedio.xml  |   20 -
 trunk/tests/input/performance/file-noflush.xml     |   20 -
 trunk/tests/input/performance/file.xml             |   19 -
 .../tests/input/performance/null-appender-info.xml |   28 -
 trunk/tests/input/performance/null-appender.xml    |   16 -
 trunk/tests/input/performance/telnet.xml           |   17 -
 trunk/tests/input/rolling/filter1.xml              |   37 -
 trunk/tests/input/rolling/obsoleteDRFA1.properties |   12 -
 trunk/tests/input/rolling/obsoleteERFA1.properties |   13 -
 trunk/tests/input/rolling/obsoleteRFA1.properties  |   12 -
 trunk/tests/input/rolling/time1.xml                |   26 -
 trunk/tests/input/ugli/basic.xml                   |   17 -
 .../watchdog/watchdog.FileWatchdog.test1_1.xml     |   33 -
 .../watchdog/watchdog.FileWatchdog.test1_2.xml     |   10 -
 .../watchdog.FileWatchdog.test2_1.properties       |   14 -
 .../watchdog.FileWatchdog.test2_2.properties       |    4 -
 trunk/tests/input/xml/DOMTest1.xml                 |   40 -
 trunk/tests/input/xml/DOMTest2.xml                 |   40 -
 trunk/tests/input/xml/DOMTest3.xml                 |   40 -
 trunk/tests/input/xml/DOMTest4.xml                 |   29 -
 trunk/tests/input/xml/DOMTest4_A1.xml              |    9 -
 trunk/tests/input/xml/DOMTest4_A2.xml              |    7 -
 trunk/tests/input/xml/customLevel1.xml             |   23 -
 trunk/tests/input/xml/customLevel2.xml             |   32 -
 trunk/tests/input/xml/customLevel3.xml             |   34 -
 trunk/tests/input/xml/customLevel4.xml             |   26 -
 trunk/tests/input/xml/customLogger1.xml            |   26 -
 trunk/tests/input/xml/customLogger2.xml            |   34 -
 trunk/tests/input/xml/customLogger3.xml            |   26 -
 trunk/tests/input/xml/defaultInit.xml              |   17 -
 .../input/xml/filters.LevelMatchFilter.test4.0.xml |   23 -
 .../input/xml/filters.LevelMatchFilter.test4.1.xml |   23 -
 .../input/xml/filters.LevelMatchFilter.test4.2.xml |   23 -
 .../input/xml/filters.LevelMatchFilter.test4.3.xml |   23 -
 .../input/xml/filters.LevelMatchFilter.test4.4.xml |   23 -
 trunk/tests/integration/.cvsignore                 |    2 -
 trunk/tests/integration/README.txt                 |   39 -
 trunk/tests/integration/build.properties.sample    |    5 -
 trunk/tests/integration/build.xml                  |  193 --
 trunk/tests/integration/client-log4j.xml           |   28 -
 trunk/tests/integration/client.properties          |   10 -
 trunk/tests/integration/lib/.cvsignore             |    8 -
 trunk/tests/integration/otherlib/.cvsignore        |    1 -
 trunk/tests/integration/server.properties          |    1 -
 .../tests/integration/src/java/SampleServlet.java  |   50 -
 trunk/tests/integration/src/java/TestAppender.java |   18 -
 .../src/webapp/WEB-INF/classes/.cvsignore          |    1 -
 .../webapp/WEB-INF/classes/test-log4j.xml.sample   |   46 -
 trunk/tests/integration/src/webapp/WEB-INF/web.xml |   26 -
 trunk/tests/integration/target/.cvsignore          |    5 -
 .../integration/test/java/TestSampleServlet.java   |   42 -
 trunk/tests/lib/.cvsignore                         |   11 -
 trunk/tests/performance.xml                        |  169 --
 trunk/tests/resources/L7D_en_US.properties         |    3 -
 trunk/tests/resources/L7D_fr.properties            |    3 -
 trunk/tests/resources/L7D_fr_CH.properties         |    2 -
 trunk/tests/resources/history/GIL.logging          |   41 -
 trunk/tests/resources/history/kal0.txt             |   67 -
 trunk/tests/resources/history/kal1.txt             |   67 -
 trunk/tests/resources/history/kal2.txt             |   57 -
 trunk/tests/resources/history/torino0.txt          |   41 -
 trunk/tests/resources/history/torino1.txt          |   60 -
 trunk/tests/resources/jetty.jndi.properties        |    2 -
 trunk/tests/resources/reffs.jndi.properties        |    3 -
 trunk/tests/servlet.xml                            |   98 -
 .../org/apache/log4j/AbstractAppenderTest.java     |   77 -
 .../org/apache/log4j/AsyncAppenderTestCase.java    |  136 --
 .../src/java/org/apache/log4j/CategoryTest.java    |  110 --
 .../java/org/apache/log4j/ConsoleAppenderTest.java |   44 -
 .../src/java/org/apache/log4j/CoreTestSuite.java   |   56 -
 .../src/java/org/apache/log4j/DeadlockTest.java    |  101 -
 .../src/java/org/apache/log4j/EncodingTest.java    |  151 --
 .../java/org/apache/log4j/FileAppenderTest.java    |  104 --
 .../src/java/org/apache/log4j/HTMLLayoutTest.java  |  179 --
 .../apache/log4j/HierarchyThresholdTestCase.java   |  118 --
 trunk/tests/src/java/org/apache/log4j/Last.java    |   24 -
 .../src/java/org/apache/log4j/LayoutTest.java      |  167 --
 .../tests/src/java/org/apache/log4j/LevelTest.java |  237 ---
 .../src/java/org/apache/log4j/LogManagerTest.java  |   75 -
 .../src/java/org/apache/log4j/LoggerTest.java      |  449 -----
 .../src/java/org/apache/log4j/MinimumTest.java     |  222 ---
 .../src/java/org/apache/log4j/NDCTestCase.java     |   79 -
 .../java/org/apache/log4j/PatternLayoutTest.java   |  143 --
 .../org/apache/log4j/PatternLayoutTestCase.java    |  449 -----
 .../src/java/org/apache/log4j/PriorityTest.java    |  185 --
 .../tests/src/java/org/apache/log4j/SimpleLog.java |   67 -
 .../src/java/org/apache/log4j/StressCategory.java  |  244 ---
 .../src/java/org/apache/log4j/TTCCLayoutTest.java  |  116 --
 .../src/java/org/apache/log4j/VectorAppender.java  |   80 -
 .../java/org/apache/log4j/VectorErrorHandler.java  |  182 --
 .../java/org/apache/log4j/WriterAppenderTest.java  |   56 -
 .../org/apache/log4j/customLogger/XLogger.java     |  141 --
 .../apache/log4j/customLogger/XLoggerTestCase.java |   84 -
 .../log4j/db/BindDataSourceToJNDIAction.java       |  106 --
 .../src/java/org/apache/log4j/db/DBPerfTest.java   |   60 -
 .../java/org/apache/log4j/db/FullCycleDBTest.java  |  269 ---
 .../org/apache/log4j/defaultInit/TestCase1.java    |   50 -
 .../org/apache/log4j/defaultInit/TestCase2.java    |   56 -
 .../org/apache/log4j/defaultInit/TestCase3.java    |   54 -
 .../org/apache/log4j/defaultInit/TestCase4.java    |   57 -
 .../org/apache/log4j/filter/SimpleFilterTest.java  |  102 --
 .../apache/log4j/helpers/BoundedFIFOTestCase.java  |  231 ---
 .../apache/log4j/helpers/CyclicBufferTestCase.java |  161 --
 .../org/apache/log4j/helpers/DateLayoutTest.java   |  268 ---
 .../log4j/helpers/LevelOptionConverterTest.java    |   88 -
 .../java/org/apache/log4j/helpers/LogLogTest.java  |   50 -
 .../log4j/helpers/OptionSubstitutionTest.java      |  168 --
 .../log4j/helpers/ReaderWriterLockTestCase.java    |  205 ---
 .../org/apache/log4j/helpers/VerifierThread.java   |  227 ---
 .../tests/src/java/org/apache/log4j/html/Loop.java |   65 -
 .../org/apache/log4j/joran/InterpreterTest.java    |  400 ----
 .../apache/log4j/joran/JoranConfiguratorTest.java  |  131 --
 .../src/java/org/apache/log4j/joran/NOPAction.java |   39 -
 .../java/org/apache/log4j/joran/PatternTest.java   |  104 --
 .../org/apache/log4j/joran/SimpleStoreTest.java    |  188 --
 .../log4j/joran/SkippingInInterpreterTest.java     |  159 --
 .../apache/log4j/joran/action/BadBeginAction.java  |   37 -
 .../apache/log4j/joran/action/BadEndAction.java    |   34 -
 .../org/apache/log4j/joran/action/HelloAction.java |   45 -
 .../log4j/joran/action/StackCounterAction.java     |   54 -
 .../org/apache/log4j/joran/action/TouchAction.java |   51 -
 .../java/org/apache/log4j/lbel/CoreParserTest.java |  113 --
 .../java/org/apache/log4j/lbel/CountingReader.java |   66 -
 .../org/apache/log4j/lbel/CountingReaderTest.java  |  133 --
 .../org/apache/log4j/lbel/EventEvaluationTest.java |  211 ---
 .../src/java/org/apache/log4j/lbel/ParserTest.java |  113 --
 .../java/org/apache/log4j/lbel/ScanErrorTest.java  |   40 -
 .../org/apache/log4j/lbel/TokenStreamTest.java     |  279 ---
 .../log4j/multiplex/MultiplexAppenderTest.java     |  105 --
 .../org/apache/log4j/net/SMTPAppenderTest.java     |   49 -
 .../org/apache/log4j/net/ShortSocketServer.java    |   89 -
 .../org/apache/log4j/net/SocketServerTestCase.java |  370 ----
 .../org/apache/log4j/net/SyslogAppenderTest.java   |  354 ----
 .../java/org/apache/log4j/net/XMLDecoderTest.java  |   40 -
 .../apache/log4j/nt/NTEventLogAppenderTest.java    |   57 -
 .../src/java/org/apache/log4j/or/ORTestCase.java   |  219 ---
 .../apache/log4j/pattern/CachedDateFormatTest.java |  398 ----
 .../apache/log4j/pattern/FormattingInfoTest.java   |   93 -
 .../apache/log4j/pattern/NameAbbreviatorTest.java  |  303 ---
 .../log4j/pattern/Num343PatternConverter.java      |   39 -
 .../apache/log4j/pattern/PatternParserTest.java    |  182 --
 .../apache/log4j/performance/GetLoggerTest.java    |   95 -
 .../org/apache/log4j/performance/LoggingLoop.java  |  181 --
 .../java/org/apache/log4j/performance/Loop.java    |  101 -
 .../org/apache/log4j/performance/NOPWriter.java    |   54 -
 .../org/apache/log4j/performance/NewVsSetLen.java  |  226 ---
 .../org/apache/log4j/performance/NullAppender.java |   67 -
 .../org/apache/log4j/performance/SystemTime.java   |   64 -
 .../src/java/org/apache/log4j/performance/logging  |  375 ----
 .../java/org/apache/log4j/performance/package.html |   19 -
 .../org/apache/log4j/plugins/PluginTestCase.java   |  634 -------
 .../java/org/apache/log4j/rolling/FileOpener.java  |   36 -
 .../log4j/rolling/FilterBasedRollingTest.java      |  132 --
 .../ObsoleteDailyRollingFileAppenderTest.java      |  105 --
 .../rolling/ObsoleteRollingFileAppenderTest.java   |   96 -
 .../org/apache/log4j/rolling/RenamingTest.java     |  102 --
 .../apache/log4j/rolling/SizeBasedRollingTest.java |  375 ----
 .../apache/log4j/rolling/TimeBasedRollingTest.java |  499 -----
 .../log4j/rolling/helper/CompressTestCase.java     |   56 -
 .../rolling/helper/FileNamePatternTestCase.java    |  160 --
 .../org/apache/log4j/scheduler/CountingJob.java    |   38 -
 .../org/apache/log4j/scheduler/PeriodicJob.java    |   90 -
 .../org/apache/log4j/scheduler/SchedulerTest.java  |  284 ---
 .../java/org/apache/log4j/selector/PassByJNDI.java |   86 -
 .../org/apache/log4j/spi/LoggingEventTest.java     |  215 ---
 .../apache/log4j/spi/ThrowableInformationTest.java |   68 -
 .../log4j/spi/location/LocationInfoTest.java       |  105 --
 .../tests/src/java/org/apache/log4j/stressCategory |  899 ---------
 .../src/java/org/apache/log4j/stressCategory.pl    |   57 -
 .../log4j/util/AbsoluteDateAndTimeFilter.java      |   35 -
 .../org/apache/log4j/util/AbsoluteTimeFilter.java  |   33 -
 .../java/org/apache/log4j/util/BinaryCompare.java  |   64 -
 .../src/java/org/apache/log4j/util/Compare.java    |  141 --
 .../java/org/apache/log4j/util/ControlFilter.java  |   43 -
 .../src/java/org/apache/log4j/util/Filter.java     |   39 -
 .../java/org/apache/log4j/util/ISO8601Filter.java  |   34 -
 .../apache/log4j/util/JunitTestRunnerFilter.java   |   46 -
 .../org/apache/log4j/util/LineNumberFilter.java    |   34 -
 .../org/apache/log4j/util/RelativeTimeFilter.java  |   35 -
 .../apache/log4j/util/SerializationTestHelper.java |  146 --
 .../org/apache/log4j/util/SunReflectFilter.java    |   39 -
 .../java/org/apache/log4j/util/Transformer.java    |   68 -
 .../log4j/util/UnexpectedFormatException.java      |   24 -
 .../apache/log4j/util/XMLLineAttributeFilter.java  |   37 -
 .../apache/log4j/util/XMLSequenceNumberFilter.java |   40 -
 .../org/apache/log4j/util/XMLTimestampFilter.java  |   36 -
 .../varia/ExternallyRolledFileAppenderTest.java    |  140 --
 .../log4j/varia/LevelMatchFilterTestCase.java      |  140 --
 .../log4j/varia/LevelRangeFilterTestCase.java      |  203 --
 .../log4j/watchdog/FileWatchdogTestCase.java       |  226 ---
 .../org/apache/log4j/xml/CustomLevelTestCase.java  |  109 --
 .../src/java/org/apache/log4j/xml/DOMTest.java     |  275 ---
 .../src/java/org/apache/log4j/xml/XLevel.java      |   74 -
 .../java/org/apache/log4j/xml/XMLDecoderTest.java  |   40 -
 .../java/org/apache/log4j/xml/XMLLayoutTest.java   |  317 ----
 .../org/apache/log4j/xml/XMLLayoutTestCase.java    |  215 ---
 trunk/tests/ugli-test.xml                          |  102 --
 trunk/tests/webapps/Tata/.cvsignore                |    3 -
 trunk/tests/webapps/Tata/build.properties.sample   |    6 -
 trunk/tests/webapps/Tata/build.xml                 |   42 -
 trunk/tests/webapps/Tata/src/WEB-INF/web.xml       |   29 -
 trunk/tests/webapps/Tata/src/html/index.html       |   11 -
 .../webapps/Tata/src/java/wombat/InitServlet.java  |   16 -
 .../webapps/Tata/src/java/wombat/XServlet.java     |   29 -
 trunk/tests/webapps/Titi/.cvsignore                |    3 -
 trunk/tests/webapps/Titi/build.properties.sample   |    6 -
 trunk/tests/webapps/Titi/build.xml                 |   42 -
 trunk/tests/webapps/Titi/src/WEB-INF/web.xml       |   29 -
 trunk/tests/webapps/Titi/src/html/index.html       |   11 -
 .../webapps/Titi/src/java/wombat/InitServlet.java  |   16 -
 .../webapps/Titi/src/java/wombat/XServlet.java     |   29 -
 trunk/tests/webapps/Titi/titi.war                  |  Bin 2384 -> 0 bytes
 trunk/tests/webapps/Util/.cvsignore                |    3 -
 trunk/tests/webapps/Util/build.properties.sample   |   11 -
 trunk/tests/webapps/Util/build.xml                 |   36 -
 trunk/tests/webapps/Util/src/java/wombat/Util.java |   39 -
 trunk/tests/webapps/Util/util.jar                  |  Bin 1074 -> 0 bytes
 trunk/tests/witness/LevelMatchFilter_accept        |    5 -
 trunk/tests/witness/LevelMatchFilter_deny          |   20 -
 trunk/tests/witness/LevelRangeFilter_accept        |   46 -
 trunk/tests/witness/LevelRangeFilter_neutral       |   46 -
 trunk/tests/witness/NDCMatchFilter_accept          |   11 -
 trunk/tests/witness/NDCMatchFilter_deny            |   21 -
 trunk/tests/witness/compress1.txt.gz               |  Bin 413 -> 0 bytes
 trunk/tests/witness/compress2.txt.gz               |  Bin 1768 -> 0 bytes
 trunk/tests/witness/encoding/UTF-16.log            |  Bin 88 -> 0 bytes
 trunk/tests/witness/encoding/UTF-16BE.log          |  Bin 86 -> 0 bytes
 trunk/tests/witness/encoding/UTF-16LE.log          |  Bin 86 -> 0 bytes
 trunk/tests/witness/encoding/UTF-8.log             |    3 -
 trunk/tests/witness/encoding/ascii.log             |    3 -
 trunk/tests/witness/encoding/latin1.log            |    3 -
 trunk/tests/witness/fallback                       |   62 -
 trunk/tests/witness/filter/simpleFilter.1          |    4 -
 trunk/tests/witness/hierarchy/hierarchyThreshold.1 |    0
 trunk/tests/witness/hierarchy/hierarchyThreshold.2 |    1 -
 trunk/tests/witness/hierarchy/hierarchyThreshold.3 |    2 -
 trunk/tests/witness/hierarchy/hierarchyThreshold.4 |    3 -
 trunk/tests/witness/hierarchy/hierarchyThreshold.5 |    4 -
 trunk/tests/witness/hierarchy/hierarchyThreshold.6 |    5 -
 trunk/tests/witness/hierarchy/hierarchyThreshold.7 |    6 -
 trunk/tests/witness/hierarchy/hierarchyThreshold.8 |    6 -
 trunk/tests/witness/joran/async                    |   62 -
 .../witness/multiplex/multiplex-test1_bob.txt      |    2 -
 .../witness/multiplex/multiplex-test1_jane.txt     |    2 -
 trunk/tests/witness/ndc/NDC.1                      |   25 -
 trunk/tests/witness/net/socketServer.1             |   31 -
 trunk/tests/witness/net/socketServer.2             |   31 -
 trunk/tests/witness/net/socketServer.3             |   31 -
 trunk/tests/witness/net/socketServer.4             |   31 -
 trunk/tests/witness/net/socketServer.5             |   31 -
 trunk/tests/witness/net/socketServer.6             |   31 -
 trunk/tests/witness/net/socketServer.7             |   31 -
 trunk/tests/witness/net/socketServer.8             |   31 -
 trunk/tests/witness/pattern/patternLayout.1        |   75 -
 trunk/tests/witness/pattern/patternLayout.10       |   75 -
 trunk/tests/witness/pattern/patternLayout.11       |   75 -
 trunk/tests/witness/pattern/patternLayout.12       |   75 -
 trunk/tests/witness/pattern/patternLayout.13       |   75 -
 trunk/tests/witness/pattern/patternLayout.14       |   75 -
 trunk/tests/witness/pattern/patternLayout.2        |   75 -
 trunk/tests/witness/pattern/patternLayout.3        |   75 -
 trunk/tests/witness/pattern/patternLayout.4        |   75 -
 trunk/tests/witness/pattern/patternLayout.5        |   75 -
 trunk/tests/witness/pattern/patternLayout.6        |   75 -
 trunk/tests/witness/pattern/patternLayout.7        |   75 -
 trunk/tests/witness/pattern/patternLayout.8        |   75 -
 trunk/tests/witness/pattern/patternLayout.9        |   75 -
 trunk/tests/witness/pattern/patternLayout.mdc.1    |    1 -
 trunk/tests/witness/pattern/patternLayout.mdc.2    |   12 -
 .../tests/witness/plugins.PluginTestCase.test1.txt |   89 -
 .../tests/witness/plugins.PluginTestCase.test2.txt |   63 -
 trunk/tests/witness/rolling/renaming.0             |    1 -
 trunk/tests/witness/rolling/renaming.1             |    1 -
 trunk/tests/witness/rolling/renaming.2             |    2 -
 trunk/tests/witness/rolling/sbr-test2.0            |   10 -
 trunk/tests/witness/rolling/sbr-test2.1            |   10 -
 trunk/tests/witness/rolling/sbr-test2.log          |    5 -
 trunk/tests/witness/rolling/sbr-test3.0.gz         |  Bin 68 -> 0 bytes
 trunk/tests/witness/rolling/sbr-test3.1.gz         |  Bin 68 -> 0 bytes
 trunk/tests/witness/rolling/sbr-test3.log          |    5 -
 trunk/tests/witness/rolling/sbr-test4.log          |   25 -
 trunk/tests/witness/rolling/tbr-test1.0            |    0
 trunk/tests/witness/rolling/tbr-test1.1            |    2 -
 trunk/tests/witness/rolling/tbr-test1.2            |    2 -
 trunk/tests/witness/rolling/tbr-test1.3            |    1 -
 trunk/tests/witness/rolling/tbr-test2.0            |    0
 trunk/tests/witness/rolling/tbr-test2.1            |    2 -
 trunk/tests/witness/rolling/tbr-test2.2            |    2 -
 trunk/tests/witness/rolling/tbr-test2.3            |    1 -
 trunk/tests/witness/rolling/tbr-test3.0.gz         |  Bin 32 -> 0 bytes
 trunk/tests/witness/rolling/tbr-test3.1.gz         |  Bin 72 -> 0 bytes
 trunk/tests/witness/rolling/tbr-test3.2.gz         |  Bin 72 -> 0 bytes
 trunk/tests/witness/rolling/tbr-test3.3            |    1 -
 trunk/tests/witness/rolling/tbr-test4.0            |    0
 trunk/tests/witness/rolling/tbr-test4.1            |    2 -
 trunk/tests/witness/rolling/tbr-test4.2            |    2 -
 trunk/tests/witness/rolling/tbr-test4.3            |    1 -
 trunk/tests/witness/rolling/tbr-test5.0            |    0
 trunk/tests/witness/rolling/tbr-test5.1            |    2 -
 trunk/tests/witness/rolling/tbr-test5.2            |    2 -
 trunk/tests/witness/rolling/tbr-test5.3            |    1 -
 trunk/tests/witness/rolling/tbr-test6.0.gz         |  Bin 20 -> 0 bytes
 trunk/tests/witness/rolling/tbr-test6.1.gz         |  Bin 72 -> 0 bytes
 trunk/tests/witness/rolling/tbr-test6.2.gz         |  Bin 72 -> 0 bytes
 trunk/tests/witness/rolling/tbr-test6.3            |    1 -
 trunk/tests/witness/serialization/exception.bin    |  Bin 1919 -> 0 bytes
 trunk/tests/witness/serialization/info.bin         |  Bin 60 -> 0 bytes
 trunk/tests/witness/serialization/location.bin     |  Bin 612 -> 0 bytes
 trunk/tests/witness/serialization/mdc.bin          |  Bin 505 -> 0 bytes
 trunk/tests/witness/serialization/ndc.bin          |  Bin 485 -> 0 bytes
 trunk/tests/witness/serialization/simple.bin       |  Bin 475 -> 0 bytes
 trunk/tests/witness/simple                         |   37 -
 trunk/tests/witness/ttcc                           |   37 -
 .../watchdog/watchdog.FileWatchdog.test1.txt       |    9 -
 .../watchdog/watchdog.FileWatchdog.test2.txt       |    9 -
 trunk/tests/witness/xml/customLevel.1              |    5 -
 trunk/tests/witness/xml/customLevel.2              |    5 -
 trunk/tests/witness/xml/customLevel.3              |    1 -
 trunk/tests/witness/xml/customLevel.4              |    5 -
 trunk/tests/witness/xml/customLogger.1             |   18 -
 trunk/tests/witness/xml/customLogger.2             |    1 -
 trunk/tests/witness/xml/dom.A1.1                   |   93 -
 trunk/tests/witness/xml/dom.A1.2                   |   93 -
 trunk/tests/witness/xml/dom.A1.3                   |   93 -
 trunk/tests/witness/xml/dom.A1.4                   |   93 -
 trunk/tests/witness/xml/dom.A2.1                   |   62 -
 trunk/tests/witness/xml/dom.A2.2                   |   62 -
 trunk/tests/witness/xml/dom.A2.3                   |   62 -
 trunk/tests/witness/xml/dom.A2.4                   |   62 -
 trunk/tests/witness/xml/xmlLayout.1                |  112 --
 trunk/tests/witness/xml/xmlLayout.2                |  127 --
 trunk/tests/witness/xml/xmlLayout.3                |    5 -
 trunk/tests/witness/xml/xmlLayout.mdc.1            |    8 -
 trunk/tests/witness/xml/xmlLayout.mdc.2            |    8 -
 trunk/tests/witness/xml/xmlLayout.null             |   24 -
 1032 files changed, 170 insertions(+), 94530 deletions(-)

[logging-log4j1] 03/05: Tagging for 1.3 alpha 8 build

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to annotated tag v1.3alpha8
in repository https://gitbox.apache.org/repos/asf/logging-log4j1.git

commit d18a582af5735dc938aa487678d3fe416e7bbb6f
Author: Mark Dwayne Womack <mw...@apache.org>
AuthorDate: Tue Jan 31 05:08:58 2006 +0000

    Tagging for 1.3 alpha 8 build
    
    git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/tags/v1.3alpha8@373711 13f79535-47bb-0310-9956-ffa450edef68
---
 trunk/.cvsignore                                   |   27 +
 trunk/BRANCHES                                     |   61 +
 trunk/HOWTOBUILD.txt                               |   31 +
 trunk/INSTALL.txt                                  |  175 ++
 trunk/KEYS                                         |  192 ++
 trunk/LICENSE.txt                                  |  202 ++
 trunk/NOTICE.txt                                   |    7 +
 trunk/build.properties.sample                      |   98 +
 trunk/build.xml                                    | 1067 +++++++++++
 trunk/docs/HISTORY.txt                             | 1936 ++++++++++++++++++++
 trunk/docs/TROUBLESHOOT.html                       |  301 +++
 trunk/docs/chainsaw-1.jpg                          |  Bin 0 -> 157864 bytes
 trunk/docs/chainsaw.html                           |  197 ++
 trunk/docs/codes.html                              |  280 +++
 trunk/docs/contributors.html                       |  269 +++
 trunk/docs/css/.cvsignore                          |    1 +
 trunk/docs/css/README.txt                          |   10 +
 trunk/docs/css/eventTable-1.0.css                  |   76 +
 trunk/docs/css/site.css                            |  140 ++
 trunk/docs/documentation.html                      |  274 +++
 trunk/docs/download.html                           |  418 +++++
 trunk/docs/earlier.html                            |  133 ++
 trunk/docs/faq.html                                | 1898 +++++++++++++++++++
 trunk/docs/history.html                            |  145 ++
 trunk/docs/images/ceki-72x101.gif                  |  Bin 0 -> 7712 bytes
 trunk/docs/images/chainsaw-fullscreen-small.jpg    |  Bin 0 -> 55917 bytes
 trunk/docs/images/chainsaw-fullscreen.jpg          |  Bin 0 -> 208947 bytes
 trunk/docs/images/coverSmall.png                   |  Bin 0 -> 57875 bytes
 trunk/docs/images/cyberlab15.gif                   |  Bin 0 -> 238 bytes
 trunk/docs/images/ecaward_finalist_logo.gif        |  Bin 0 -> 3015 bytes
 trunk/docs/images/logo.jpg                         |  Bin 0 -> 8184 bytes
 trunk/docs/images/mark-72x99.gif                   |  Bin 0 -> 2206 bytes
 trunk/docs/images/psmith.jpg                       |  Bin 0 -> 8052 bytes
 trunk/docs/images/yshapira.bmp                     |  Bin 0 -> 31514 bytes
 trunk/docs/index.html                              |  170 ++
 trunk/docs/install-chainsaw.html                   |  123 ++
 trunk/docs/manual.html                             | 1213 ++++++++++++
 trunk/docs/od.gif                                  |  Bin 0 -> 5741 bytes
 trunk/docs/overview.html                           |   12 +
 trunk/docs/plan.html                               |  386 ++++
 trunk/docs/praise.html                             |  266 +++
 trunk/docs/ugli.html                               |  128 ++
 trunk/examples/.cvsignore                          |    2 +
 trunk/examples/src/customLevel/XLevel.java         |   73 +
 trunk/examples/src/factor/NumberCruncher.java      |   21 +
 .../examples/src/factor/NumberCruncherClient.java  |  106 ++
 .../examples/src/factor/NumberCruncherServer.java  |  172 ++
 trunk/examples/src/factor/factor.html              |   66 +
 trunk/examples/src/factor/factor.lcf               |   27 +
 trunk/examples/src/joran/calculator/AddAction.java |   77 +
 .../examples/src/joran/calculator/Calculator1.java |   85 +
 .../examples/src/joran/calculator/Calculator2.java |   75 +
 .../src/joran/calculator/ComputationAction1.java   |   62 +
 .../src/joran/calculator/ComputationAction2.java   |   89 +
 .../src/joran/calculator/LiteralAction.java        |   67 +
 .../src/joran/calculator/MultiplyAction.java       |   77 +
 .../examples/src/joran/calculator/calculator1.xml  |    6 +
 .../examples/src/joran/calculator/calculator2.xml  |   10 +
 .../examples/src/joran/calculator/calculator3.xml  |   18 +
 .../examples/src/joran/helloWorld/HelloWorld.java  |   63 +
 .../src/joran/helloWorld/HelloWorldAction.java     |   40 +
 trunk/examples/src/joran/helloWorld/hello.xml      |    5 +
 trunk/examples/src/joran/implicit/NOPAction.java   |   39 +
 trunk/examples/src/joran/implicit/PrintMe.java     |   82 +
 .../src/joran/implicit/PrintMeImplicitAction.java  |   50 +
 trunk/examples/src/joran/implicit/implicit1.xml    |   24 +
 .../src/joran/newRule/NewRuleCalculator.java       |   85 +
 trunk/examples/src/objectBased/Base.java           |   44 +
 trunk/examples/src/objectBased/ChildOne.java       |   32 +
 trunk/examples/src/objectBased/ChildTwo.java       |   32 +
 trunk/examples/src/objectBased/Test.java           |   39 +
 trunk/examples/src/package.html                    |   37 +
 .../src/pattern/CountingPatternConverter.java      |   35 +
 trunk/examples/src/pattern/LearnNewWord.java       |   53 +
 trunk/examples/src/pattern/log4j-config.xml        |   19 +
 trunk/examples/src/sort/Sort.java                  |   97 +
 trunk/examples/src/sort/SortAlgo.java              |   86 +
 trunk/examples/src/sort/sort1.properties           |   26 +
 trunk/examples/src/sort/sort2.properties           |   55 +
 trunk/examples/src/sort/sort3.properties           |   32 +
 trunk/examples/src/sort/sort4.properties           |   32 +
 trunk/examples/src/subclass/MyLogger.java          |   71 +
 trunk/examples/src/subclass/MyLoggerFactory.java   |   42 +
 trunk/examples/src/subclass/MyLoggerTest.java      |   86 +
 trunk/examples/src/subclass/mycat.bad              |   18 +
 trunk/examples/src/subclass/mycat.good             |   24 +
 trunk/examples/src/trivial/Trivial.java            |   75 +
 trunk/examples/tiny-webapp/Hello/.cvsignore        |    2 +
 trunk/examples/tiny-webapp/Hello/README.txt        |   12 +
 .../Hello/WebRoot/WEB-INF/classes/.cvsignore       |    1 +
 .../Hello/WebRoot/WEB-INF/classes/hello-log4j.xml  |   19 +
 .../tiny-webapp/Hello/WebRoot/WEB-INF/web.xml      |   42 +
 .../examples/tiny-webapp/Hello/WebRoot/index.html  |   11 +
 .../tiny-webapp/Hello/build.properties.sample      |   10 +
 trunk/examples/tiny-webapp/Hello/build.xml         |   54 +
 .../Hello/src/java/wombat/HelloServlet.java        |   33 +
 .../Hello/src/java/wombat/InitServlet.java         |   19 +
 trunk/examples/tiny-webapp/INSTALL.txt             |  161 ++
 trunk/examples/tiny-webapp/Tata/.cvsignore         |    3 +
 trunk/examples/tiny-webapp/Tata/README.txt         |   12 +
 .../Tata/WebRoot/WEB-INF/classes/.cvsignore        |    1 +
 .../Tata/WebRoot/WEB-INF/classes/tata-log4j.xml    |   18 +
 .../tiny-webapp/Tata/WebRoot/WEB-INF/web.xml       |   41 +
 trunk/examples/tiny-webapp/Tata/WebRoot/index.html |   11 +
 .../tiny-webapp/Tata/build.properties.sample       |   14 +
 trunk/examples/tiny-webapp/Tata/build.xml          |   54 +
 .../Tata/src/java/wombat/InitServlet.java          |   19 +
 .../Tata/src/java/wombat/TataServlet.java          |   33 +
 trunk/packaging/.functions                         |   40 +
 trunk/packaging/install                            |  189 ++
 trunk/packaging/package-list                       |   59 +
 trunk/packaging/tarmake                            |   72 +
 trunk/pom.xml                                      |  181 ++
 trunk/src/changes/changes.xml                      |    1 +
 trunk/src/java/org/apache/log4j/Appender.java      |  135 ++
 .../java/org/apache/log4j/AppenderSkeleton.java    |  351 ++++
 trunk/src/java/org/apache/log4j/AsyncAppender.java |  342 ++++
 .../java/org/apache/log4j/BasicConfigurator.java   |   66 +
 trunk/src/java/org/apache/log4j/Category.java      | 1444 +++++++++++++++
 trunk/src/java/org/apache/log4j/CategoryKey.java   |   48 +
 .../src/java/org/apache/log4j/ConsoleAppender.java |  212 +++
 .../org/apache/log4j/DailyRollingFileAppender.java |  356 ++++
 .../org/apache/log4j/DefaultCategoryFactory.java   |   29 +
 trunk/src/java/org/apache/log4j/FileAppender.java  |  323 ++++
 trunk/src/java/org/apache/log4j/HTMLLayout.java    |  465 +++++
 trunk/src/java/org/apache/log4j/Hierarchy.java     |  845 +++++++++
 trunk/src/java/org/apache/log4j/Layout.java        |  125 ++
 trunk/src/java/org/apache/log4j/Level.java         |  290 +++
 trunk/src/java/org/apache/log4j/LogManager.java    |  290 +++
 trunk/src/java/org/apache/log4j/Logger.java        |  230 +++
 trunk/src/java/org/apache/log4j/MDC.java           |  143 ++
 trunk/src/java/org/apache/log4j/NDC.java           |  329 ++++
 trunk/src/java/org/apache/log4j/PatternLayout.java |  578 ++++++
 trunk/src/java/org/apache/log4j/Priority.java      |  249 +++
 .../org/apache/log4j/PropertyConfigurator.java     |  718 ++++++++
 trunk/src/java/org/apache/log4j/ProvisionNode.java |   27 +
 .../java/org/apache/log4j/RollingFileAppender.java |  423 +++++
 trunk/src/java/org/apache/log4j/SimpleLayout.java  |   64 +
 trunk/src/java/org/apache/log4j/TTCCLayout.java    |  185 ++
 trunk/src/java/org/apache/log4j/ULogger.java       |   89 +
 .../src/java/org/apache/log4j/WriterAppender.java  |  432 +++++
 trunk/src/java/org/apache/log4j/concurrency.txt    |   30 +
 .../org/apache/log4j/config/ConfigWatchdog.java    |  107 ++
 .../org/apache/log4j/config/ConfiguratorBase.java  |  141 ++
 .../org/apache/log4j/config/PropertyGetter.java    |   92 +
 .../org/apache/log4j/config/PropertyPrinter.java   |  156 ++
 .../org/apache/log4j/config/PropertySetter.java    |  419 +++++
 .../log4j/config/PropertySetterException.java      |   52 +
 .../src/java/org/apache/log4j/config/package.html  |    6 +
 .../java/org/apache/log4j/db/ConnectionSource.java |   68 +
 .../apache/log4j/db/ConnectionSourceSkeleton.java  |  109 ++
 .../org/apache/log4j/db/CustomSQLDBReceiver.java   |  442 +++++
 trunk/src/java/org/apache/log4j/db/DBAppender.java |  375 ++++
 trunk/src/java/org/apache/log4j/db/DBHelper.java   |   67 +
 trunk/src/java/org/apache/log4j/db/DBReceiver.java |  118 ++
 .../java/org/apache/log4j/db/DBReceiverJob.java    |  229 +++
 .../log4j/db/DataSourceConnectionSource.java       |   85 +
 .../log4j/db/DriverManagerConnectionSource.java    |  132 ++
 .../org/apache/log4j/db/JNDIConnectionSource.java  |  142 ++
 .../org/apache/log4j/db/dialect/HSQLDBDialect.java |   30 +
 .../org/apache/log4j/db/dialect/MsSQLDialect.java  |   33 +
 .../org/apache/log4j/db/dialect/MySQLDialect.java  |   31 +
 .../org/apache/log4j/db/dialect/OracleDialect.java |   32 +
 .../apache/log4j/db/dialect/PostgreSQLDialect.java |   34 +
 .../org/apache/log4j/db/dialect/SQLDialect.java    |   26 +
 .../src/java/org/apache/log4j/db/dialect/Util.java |  124 ++
 trunk/src/java/org/apache/log4j/db/dialect/db2.sql |   49 +
 .../src/java/org/apache/log4j/db/dialect/db2l.sql  |   47 +
 .../java/org/apache/log4j/db/dialect/hsqldb.sql    |   46 +
 .../src/java/org/apache/log4j/db/dialect/mssql.sql |   45 +
 .../src/java/org/apache/log4j/db/dialect/mysql.sql |   54 +
 .../java/org/apache/log4j/db/dialect/oracle.sql    |   67 +
 .../org/apache/log4j/db/dialect/postgresql.sql     |   48 +
 trunk/src/java/org/apache/log4j/db/package.html    |   20 +
 .../java/org/apache/log4j/filter/AndFilter.java    |  111 ++
 .../org/apache/log4j/filter/DenyAllFilter.java     |   71 +
 .../org/apache/log4j/filter/ExpressionFilter.java  |  111 ++
 .../org/apache/log4j/filter/LevelMatchFilter.java  |   99 +
 .../org/apache/log4j/filter/LevelRangeFilter.java  |  143 ++
 .../apache/log4j/filter/LocationInfoFilter.java    |   85 +
 .../java/org/apache/log4j/filter/MapFilter.java    |   61 +
 .../org/apache/log4j/filter/PropertyFilter.java    |   75 +
 .../org/apache/log4j/filter/ReflectionFilter.java  |   81 +
 .../org/apache/log4j/filter/StringMatchFilter.java |   84 +
 .../log4j/helpers/AbsoluteTimeDateFormat.java      |  115 ++
 .../log4j/helpers/AppenderAttachableImpl.java      |  185 ++
 .../java/org/apache/log4j/helpers/BoundedFIFO.java |  180 ++
 .../java/org/apache/log4j/helpers/Constants.java   |   67 +
 .../apache/log4j/helpers/CountingQuietWriter.java  |   67 +
 .../org/apache/log4j/helpers/CyclicBuffer.java     |  158 ++
 .../java/org/apache/log4j/helpers/DateLayout.java  |  207 +++
 .../apache/log4j/helpers/DateTimeDateFormat.java   |   56 +
 .../org/apache/log4j/helpers/FileWatchdog.java     |  111 ++
 .../apache/log4j/helpers/ISO8601DateFormat.java    |   60 +
 .../apache/log4j/helpers/IntializationUtil.java    |  138 ++
 .../java/org/apache/log4j/helpers/JNDIUtil.java    |   44 +
 .../src/java/org/apache/log4j/helpers/Loader.java  |  175 ++
 .../src/java/org/apache/log4j/helpers/LogLog.java  |  173 ++
 .../org/apache/log4j/helpers/LoggerTraverse.java   |  329 ++++
 .../org/apache/log4j/helpers/MessageFormatter.java |  126 ++
 .../org/apache/log4j/helpers/NullEnumeration.java  |   49 +
 .../apache/log4j/helpers/OnlyOnceErrorHandler.java |   42 +
 .../src/java/org/apache/log4j/helpers/Option.java  |   30 +
 .../org/apache/log4j/helpers/OptionConverter.java  |  577 ++++++
 .../org/apache/log4j/helpers/PlatformInfo.java     |   86 +
 .../java/org/apache/log4j/helpers/QuietWriter.java |   83 +
 .../org/apache/log4j/helpers/ReaderWriterLock.java |  129 ++
 .../log4j/helpers/RelativeTimeDateFormat.java      |   72 +
 .../apache/log4j/helpers/SyslogQuietWriter.java    |   61 +
 .../org/apache/log4j/helpers/SyslogWriter.java     |   91 +
 .../org/apache/log4j/helpers/ThreadLocalMap.java   |   39 +
 .../java/org/apache/log4j/helpers/Transform.java   |  108 ++
 .../org/apache/log4j/helpers/UtilLoggingLevel.java |  145 ++
 .../src/java/org/apache/log4j/helpers/package.html |   16 +
 .../java/org/apache/log4j/jdbc/JDBCAppender.java   |  358 ++++
 .../org/apache/log4j/jmx/AbstractDynamicMBean.java |  130 ++
 trunk/src/java/org/apache/log4j/jmx/Agent.java     |   54 +
 .../org/apache/log4j/jmx/AppenderDynamicMBean.java |  320 ++++
 .../apache/log4j/jmx/HierarchyDynamicMBean.java    |  299 +++
 .../org/apache/log4j/jmx/LayoutDynamicMBean.java   |  255 +++
 .../org/apache/log4j/jmx/LoggerDynamicMBean.java   |  278 +++
 .../src/java/org/apache/log4j/jmx/MethodUnion.java |   31 +
 trunk/src/java/org/apache/log4j/jmx/package.html   |    7 +
 .../org/apache/log4j/joran/JoranConfigurator.java  |  245 +++
 .../java/org/apache/log4j/joran/action/Action.java |   81 +
 .../org/apache/log4j/joran/action/ActionConst.java |   27 +
 .../apache/log4j/joran/action/AppenderAction.java  |  119 ++
 .../log4j/joran/action/AppenderRefAction.java      |  104 ++
 .../log4j/joran/action/ConfigurationAction.java    |   55 +
 .../log4j/joran/action/ConversionRuleAction.java   |  104 ++
 .../apache/log4j/joran/action/ImplicitAction.java  |   50 +
 .../action/JndiSubstitutionPropertyAction.java     |  121 ++
 .../apache/log4j/joran/action/LayoutAction.java    |  103 ++
 .../org/apache/log4j/joran/action/LevelAction.java |   84 +
 .../apache/log4j/joran/action/LoggerAction.java    |  109 ++
 .../apache/log4j/joran/action/NestComponentIA.java |  184 ++
 .../apache/log4j/joran/action/NewRuleAction.java   |   77 +
 .../org/apache/log4j/joran/action/ParamAction.java |   71 +
 .../apache/log4j/joran/action/PluginAction.java    |  110 ++
 .../apache/log4j/joran/action/PriorityAction.java  |   19 +
 .../apache/log4j/joran/action/PropertyAction.java  |   92 +
 .../joran/action/RepositoryPropertyAction.java     |   48 +
 .../log4j/joran/action/RootLoggerAction.java       |   68 +
 .../joran/action/SubstitutionPropertyAction.java   |   40 +
 .../apache/log4j/joran/spi/ActionException.java    |   59 +
 .../apache/log4j/joran/spi/ExecutionContext.java   |  155 ++
 .../org/apache/log4j/joran/spi/Interpreter.java    |  408 +++++
 .../org/apache/log4j/joran/spi/JoranDocument.java  |  229 +++
 .../java/org/apache/log4j/joran/spi/Pattern.java   |  185 ++
 .../java/org/apache/log4j/joran/spi/RuleStore.java |   28 +
 .../apache/log4j/joran/spi/SimpleRuleStore.java    |  105 ++
 .../java/org/apache/log4j/lbel/EventEvaluator.java |   48 +
 .../org/apache/log4j/lbel/LBELEventEvaluator.java  |   73 +
 trunk/src/java/org/apache/log4j/lbel/Node.java     |   84 +
 trunk/src/java/org/apache/log4j/lbel/Operator.java |   85 +
 trunk/src/java/org/apache/log4j/lbel/Parser.java   |  298 +++
 .../src/java/org/apache/log4j/lbel/ScanError.java  |   19 +
 trunk/src/java/org/apache/log4j/lbel/Token.java    |   79 +
 .../java/org/apache/log4j/lbel/TokenStream.java    |  200 ++
 .../log4j/lbel/comparator/ClassComparator.java     |   45 +
 .../apache/log4j/lbel/comparator/Comparator.java   |   39 +
 .../log4j/lbel/comparator/LevelComparator.java     |   62 +
 .../log4j/lbel/comparator/LoggerComparator.java    |   43 +
 .../log4j/lbel/comparator/MessageComparator.java   |   43 +
 .../log4j/lbel/comparator/MethodComparator.java    |   45 +
 .../log4j/lbel/comparator/PropertyComparator.java  |   49 +
 .../log4j/lbel/comparator/StringComparator.java    |  143 ++
 .../log4j/lbel/comparator/TimestampComparator.java |   52 +
 .../apache/log4j/multiplex/AppenderFactory.java    |   15 +
 .../log4j/multiplex/AppenderFactoryUtils.java      |   84 +
 .../org/apache/log4j/multiplex/MDCKeySelector.java |   54 +
 .../apache/log4j/multiplex/MultiplexAppender.java  |   88 +
 .../apache/log4j/multiplex/MultiplexSelector.java  |   21 +
 .../log4j/multiplex/MultiplexSelectorSkeleton.java |   57 +
 .../java/org/apache/log4j/net/AddressBased.java    |   34 +
 .../src/java/org/apache/log4j/net/JMSAppender.java |  440 +++++
 .../src/java/org/apache/log4j/net/JMSReceiver.java |  299 +++
 .../org/apache/log4j/net/JMSReceiverBeanInfo.java  |   51 +
 trunk/src/java/org/apache/log4j/net/JMSSink.java   |  156 ++
 .../org/apache/log4j/net/MulticastAppender.java    |  310 ++++
 .../org/apache/log4j/net/MulticastReceiver.java    |  255 +++
 .../log4j/net/MulticastReceiverBeanInfo.java       |   49 +
 .../java/org/apache/log4j/net/NetworkBased.java    |   15 +
 trunk/src/java/org/apache/log4j/net/PortBased.java |   33 +
 .../java/org/apache/log4j/net/SMTPAppender.java    |  499 +++++
 .../org/apache/log4j/net/SimpleSocketServer.java   |   95 +
 .../java/org/apache/log4j/net/SocketAppender.java  |  444 +++++
 .../org/apache/log4j/net/SocketHubAppender.java    |  420 +++++
 .../org/apache/log4j/net/SocketHubReceiver.java    |  295 +++
 .../log4j/net/SocketHubReceiverBeanInfo.java       |   50 +
 .../src/java/org/apache/log4j/net/SocketNode.java  |  231 +++
 .../apache/log4j/net/SocketNodeEventListener.java  |   41 +
 .../java/org/apache/log4j/net/SocketReceiver.java  |  400 ++++
 .../java/org/apache/log4j/net/SocketServer.java    |  217 +++
 .../java/org/apache/log4j/net/SyslogAppender.java  |  427 +++++
 .../java/org/apache/log4j/net/TelnetAppender.java  |  222 +++
 .../src/java/org/apache/log4j/net/UDPAppender.java |  326 ++++
 .../src/java/org/apache/log4j/net/UDPReceiver.java |  252 +++
 .../java/org/apache/log4j/net/XMLSocketNode.java   |  209 +++
 .../org/apache/log4j/net/XMLSocketReceiver.java    |  274 +++
 trunk/src/java/org/apache/log4j/net/package.html   |   13 +
 trunk/src/java/org/apache/log4j/net/test/Loop.java |   69 +
 .../java/org/apache/log4j/net/test/SMTPMin.java    |   64 +
 .../java/org/apache/log4j/net/test/SocketMin.java  |  111 ++
 .../java/org/apache/log4j/net/test/SyslogMin.java  |   69 +
 .../log4j/net/test/intermediarySocketServer.lcf    |   23 +
 trunk/src/java/org/apache/log4j/net/test/jms.lcf   |    6 +
 .../src/java/org/apache/log4j/net/test/logging.lcf |    9 +
 trunk/src/java/org/apache/log4j/net/test/loop.lcf  |    9 +
 .../org/apache/log4j/net/test/socketClient.lcf     |   20 +
 .../org/apache/log4j/net/test/socketServer.lcf     |   12 +
 .../src/java/org/apache/log4j/net/test/syslog.lcf  |   20 +
 trunk/src/java/org/apache/log4j/net/test/syslogMin |   21 +
 .../java/org/apache/log4j/nt/EventLogCategories.h  |   90 +
 .../java/org/apache/log4j/nt/EventLogCategories.mc |   24 +
 .../java/org/apache/log4j/nt/EventLogCategories.rc |    2 +
 trunk/src/java/org/apache/log4j/nt/MSG00001.bin    |  Bin 0 -> 192 bytes
 .../org/apache/log4j/nt/NTEventLogAppender.java    |  176 ++
 .../java/org/apache/log4j/nt/NTEventLogAppender.rc |  102 ++
 trunk/src/java/org/apache/log4j/nt/nteventlog.cpp  |  245 +++
 trunk/src/java/org/apache/log4j/nt/package.html    |   15 +
 .../java/org/apache/log4j/or/DefaultRenderer.java  |   36 +
 .../java/org/apache/log4j/or/ObjectRenderer.java   |   30 +
 .../src/java/org/apache/log4j/or/RendererMap.java  |  219 +++
 .../org/apache/log4j/or/ThreadGroupRenderer.java   |   76 +
 .../org/apache/log4j/or/jms/MessageRenderer.java   |   88 +
 .../src/java/org/apache/log4j/or/jms/package.html  |    7 +
 trunk/src/java/org/apache/log4j/or/package.html    |   13 +
 .../apache/log4j/or/sax/AttributesRenderer.java    |   61 +
 .../src/java/org/apache/log4j/or/sax/package.html  |    7 +
 trunk/src/java/org/apache/log4j/package.html       |   11 +
 .../org/apache/log4j/pattern/CachedDateFormat.java |  372 ++++
 .../log4j/pattern/ClassNamePatternConverter.java   |   69 +
 .../apache/log4j/pattern/DatePatternConverter.java |  136 ++
 .../log4j/pattern/FileDatePatternConverter.java    |   52 +
 .../pattern/FileLocationPatternConverter.java      |   66 +
 .../org/apache/log4j/pattern/FormattingInfo.java   |  134 ++
 .../pattern/FullLocationPatternConverter.java      |   66 +
 .../log4j/pattern/IntegerPatternConverter.java     |   67 +
 .../log4j/pattern/LevelPatternConverter.java       |   95 +
 .../pattern/LineLocationPatternConverter.java      |   66 +
 .../pattern/LineSeparatorPatternConverter.java     |   75 +
 .../log4j/pattern/LiteralPatternConverter.java     |   57 +
 .../log4j/pattern/LoggerPatternConverter.java      |   69 +
 .../pattern/LoggingEventPatternConverter.java      |   70 +
 .../log4j/pattern/MessagePatternConverter.java     |   60 +
 .../pattern/MethodLocationPatternConverter.java    |   66 +
 .../apache/log4j/pattern/NDCPatternConverter.java  |   60 +
 .../org/apache/log4j/pattern/NameAbbreviator.java  |  305 +++
 .../apache/log4j/pattern/NamePatternConverter.java |   61 +
 .../org/apache/log4j/pattern/PatternConverter.java |   87 +
 .../org/apache/log4j/pattern/PatternParser.java    |  707 +++++++
 .../log4j/pattern/PropertiesPatternConverter.java  |  100 +
 .../pattern/RelativeTimePatternConverter.java      |  108 ++
 .../pattern/SequenceNumberPatternConverter.java    |   61 +
 .../log4j/pattern/ThreadPatternConverter.java      |   60 +
 .../ThrowableInformationPatternConverter.java      |  102 ++
 .../src/java/org/apache/log4j/pattern/package.html |   11 +
 .../java/org/apache/log4j/plugins/Pauseable.java   |   30 +
 .../src/java/org/apache/log4j/plugins/Plugin.java  |  140 ++
 .../java/org/apache/log4j/plugins/PluginEvent.java |   45 +
 .../org/apache/log4j/plugins/PluginListener.java   |   34 +
 .../org/apache/log4j/plugins/PluginRegistry.java   |  280 +++
 .../org/apache/log4j/plugins/PluginSkeleton.java   |  184 ++
 .../java/org/apache/log4j/plugins/Receiver.java    |  123 ++
 .../log4j/rolling/FilterBasedTriggeringPolicy.java |  121 ++
 .../log4j/rolling/FixedWindowRollingPolicy.java    |  333 ++++
 .../apache/log4j/rolling/RollingFileAppender.java  |  478 +++++
 .../org/apache/log4j/rolling/RollingPolicy.java    |   55 +
 .../apache/log4j/rolling/RollingPolicyBase.java    |  178 ++
 .../apache/log4j/rolling/RolloverDescription.java  |   57 +
 .../log4j/rolling/RolloverDescriptionImpl.java     |  107 ++
 .../log4j/rolling/SizeBasedTriggeringPolicy.java   |   84 +
 .../log4j/rolling/TimeBasedRollingPolicy.java      |  282 +++
 .../org/apache/log4j/rolling/TriggeringPolicy.java |   48 +
 .../org/apache/log4j/rolling/helper/Action.java    |   50 +
 .../apache/log4j/rolling/helper/ActionBase.java    |   91 +
 .../log4j/rolling/helper/CompositeAction.java      |  112 ++
 .../log4j/rolling/helper/FileRenameAction.java     |   82 +
 .../log4j/rolling/helper/GZCompressAction.java     |  143 ++
 .../log4j/rolling/helper/ZipCompressAction.java    |  146 ++
 .../org/apache/log4j/rolling/helper/package.html   |   11 +
 .../src/java/org/apache/log4j/rolling/package.html |   20 +
 .../java/org/apache/log4j/rule/AbstractRule.java   |   56 +
 trunk/src/java/org/apache/log4j/rule/AndRule.java  |   60 +
 .../src/java/org/apache/log4j/rule/ColorRule.java  |   68 +
 .../src/java/org/apache/log4j/rule/EqualsRule.java |   75 +
 .../src/java/org/apache/log4j/rule/ExistsRule.java |   64 +
 .../java/org/apache/log4j/rule/ExpressionRule.java |  140 ++
 .../java/org/apache/log4j/rule/InFixToPostFix.java |  190 ++
 .../java/org/apache/log4j/rule/InequalityRule.java |  103 ++
 .../org/apache/log4j/rule/LevelEqualsRule.java     |  102 ++
 .../org/apache/log4j/rule/LevelInequalityRule.java |  145 ++
 trunk/src/java/org/apache/log4j/rule/LikeRule.java |  112 ++
 .../java/org/apache/log4j/rule/NotEqualsRule.java  |   69 +
 trunk/src/java/org/apache/log4j/rule/NotRule.java  |   55 +
 trunk/src/java/org/apache/log4j/rule/OrRule.java   |   59 +
 .../apache/log4j/rule/PartialTextMatchRule.java    |   70 +
 trunk/src/java/org/apache/log4j/rule/Rule.java     |   59 +
 .../java/org/apache/log4j/rule/RuleFactory.java    |  142 ++
 .../org/apache/log4j/rule/TimestampEqualsRule.java |   81 +
 .../apache/log4j/rule/TimestampInequalityRule.java |  100 +
 trunk/src/java/org/apache/log4j/scheduler/Job.java |   32 +
 .../java/org/apache/log4j/scheduler/Scheduler.java |  234 +++
 .../apache/log4j/selector/ContextJNDISelector.java |  214 +++
 .../java/org/apache/log4j/selector/package.html    |   19 +
 .../selector/servlet/ContextDetachingSCL.java      |   99 +
 .../org/apache/log4j/spi/AppenderAttachable.java   |   66 +
 trunk/src/java/org/apache/log4j/spi/Component.java |   29 +
 .../java/org/apache/log4j/spi/ComponentBase.java   |   97 +
 .../java/org/apache/log4j/spi/Configurator.java    |   54 +
 trunk/src/java/org/apache/log4j/spi/Decoder.java   |   42 +
 .../log4j/spi/DefaultRepositorySelector.java       |   41 +
 trunk/src/java/org/apache/log4j/spi/ErrorCode.java |   35 +
 .../java/org/apache/log4j/spi/ErrorHandler.java    |   44 +
 trunk/src/java/org/apache/log4j/spi/ErrorItem.java |  113 ++
 trunk/src/java/org/apache/log4j/spi/Filter.java    |  117 ++
 .../apache/log4j/spi/HierarchyEventListener.java   |   38 +
 .../log4j/spi/HierarchyEventListenerAdapter.java   |   75 +
 .../java/org/apache/log4j/spi/LocationInfo.java    |  200 ++
 .../org/apache/log4j/spi/LoggerEventListener.java  |   59 +
 .../java/org/apache/log4j/spi/LoggerFactory.java   |   35 +
 .../org/apache/log4j/spi/LoggerRepository.java     |   91 +
 .../log4j/spi/LoggerRepositoryEventListener.java   |   47 +
 .../org/apache/log4j/spi/LoggerRepositoryEx.java   |  192 ++
 .../java/org/apache/log4j/spi/LoggingEvent.java    |  967 ++++++++++
 .../log4j/spi/LoggingEventFieldResolver.java       |  177 ++
 .../src/java/org/apache/log4j/spi/NOPULogger.java  |  186 ++
 .../java/org/apache/log4j/spi/OptionHandler.java   |   41 +
 .../java/org/apache/log4j/spi/RendererSupport.java |   27 +
 .../org/apache/log4j/spi/RepositorySelector.java   |   42 +
 .../org/apache/log4j/spi/RepositorySelectorEx.java |   53 +
 .../java/org/apache/log4j/spi/RootCategory.java    |   72 +
 .../src/java/org/apache/log4j/spi/RootLogger.java  |   71 +
 .../java/org/apache/log4j/spi/SimpleULogger.java   |  285 +++
 .../java/org/apache/log4j/spi/Thresholdable.java   |   55 +
 .../org/apache/log4j/spi/ThrowableInformation.java |  235 +++
 .../apache/log4j/spi/TriggeringEventEvaluator.java |   39 +
 .../apache/log4j/spi/location/LegacyExtractor.java |  211 +++
 .../spi/location/StackTraceElementExtractor.java   |  140 ++
 trunk/src/java/org/apache/log4j/spi/package.html   |   12 +
 .../org/apache/log4j/test/witness/confParsing.1    |    2 +
 .../org/apache/log4j/test/witness/confParsing.10   |    2 +
 .../org/apache/log4j/test/witness/confParsing.11   |    2 +
 .../org/apache/log4j/test/witness/confParsing.2    |    2 +
 .../org/apache/log4j/test/witness/confParsing.3    |    1 +
 .../org/apache/log4j/test/witness/confParsing.4    |    3 +
 .../org/apache/log4j/test/witness/confParsing.5    |    3 +
 .../org/apache/log4j/test/witness/confParsing.6    |    2 +
 .../org/apache/log4j/test/witness/confParsing.7    |    3 +
 .../org/apache/log4j/test/witness/confParsing.8    |    2 +
 .../org/apache/log4j/test/witness/confParsing.9    |    2 +
 .../java/org/apache/log4j/test/witness/customCat.1 |    6 +
 .../java/org/apache/log4j/test/witness/definit.1   |    1 +
 .../java/org/apache/log4j/test/witness/definit.2   |    0
 .../java/org/apache/log4j/test/witness/definit.3   |    0
 .../java/org/apache/log4j/test/witness/definit.4   |    0
 .../java/org/apache/log4j/test/witness/definit.5   |    1 +
 .../java/org/apache/log4j/test/witness/definit.6   |    1 +
 .../java/org/apache/log4j/test/witness/domTest.10  |    2 +
 .../java/org/apache/log4j/test/witness/domTest.11  |    2 +
 .../java/org/apache/log4j/test/witness/domTest.12  |   24 +
 .../java/org/apache/log4j/test/witness/domTest.4   |   12 +
 .../java/org/apache/log4j/test/witness/domTest.5   |   26 +
 .../java/org/apache/log4j/test/witness/domTest.6   |    4 +
 .../java/org/apache/log4j/test/witness/domTest.7   |   24 +
 .../java/org/apache/log4j/test/witness/domTest.8   |    6 +
 .../java/org/apache/log4j/test/witness/domTest.9   |    0
 .../org/apache/log4j/test/witness/domTest.A1.1     |   39 +
 .../org/apache/log4j/test/witness/domTest.A1.2     |    0
 .../org/apache/log4j/test/witness/domTest.A1.3     |    0
 .../org/apache/log4j/test/witness/domTest.A2.1     |   26 +
 .../org/apache/log4j/test/witness/domTest.A2.2     |    0
 .../org/apache/log4j/test/witness/domTest.A2.3     |    4 +
 .../org/apache/log4j/test/witness/enableFlagTest.1 |    0
 .../org/apache/log4j/test/witness/enableFlagTest.2 |    1 +
 .../org/apache/log4j/test/witness/enableFlagTest.3 |    2 +
 .../org/apache/log4j/test/witness/enableFlagTest.4 |    3 +
 .../org/apache/log4j/test/witness/enableFlagTest.5 |    4 +
 .../org/apache/log4j/test/witness/enableFlagTest.6 |    5 +
 .../org/apache/log4j/test/witness/enableFlagTest.7 |    5 +
 .../src/java/org/apache/log4j/test/witness/fqcn.1  |    3 +
 .../org/apache/log4j/test/witness/getOptions.1     |   11 +
 trunk/src/java/org/apache/log4j/test/witness/l7d.1 |   21 +
 .../src/java/org/apache/log4j/test/witness/mycat.1 |    1 +
 .../src/java/org/apache/log4j/test/witness/mycat.2 |    0
 .../src/java/org/apache/log4j/test/witness/mycat.3 |    1 +
 .../java/org/apache/log4j/test/witness/propCfg.1   |    1 +
 .../java/org/apache/log4j/test/witness/propCfg.2   |    1 +
 .../org/apache/log4j/test/witness/shallow.1000     |   50 +
 .../org/apache/log4j/test/witness/shallow.1001     |   50 +
 .../org/apache/log4j/test/witness/shallow.A1.1     |   50 +
 .../org/apache/log4j/test/witness/shallow.A1.2     |   45 +
 .../org/apache/log4j/test/witness/shallow.A1.3     |   50 +
 .../org/apache/log4j/test/witness/shallow.A1.4     |   40 +
 .../org/apache/log4j/test/witness/shallow.A1.5     |   40 +
 .../org/apache/log4j/test/witness/shallow.A1.6     |   40 +
 .../org/apache/log4j/test/witness/shallow.A1.7     |   25 +
 .../org/apache/log4j/test/witness/shallow.A1.8     |   15 +
 .../org/apache/log4j/test/witness/shallow.A2.1     |   25 +
 .../org/apache/log4j/test/witness/shallow.A2.2     |   25 +
 .../org/apache/log4j/test/witness/shallow.A2.3     |   25 +
 .../org/apache/log4j/test/witness/shallow.A2.4     |   20 +
 .../org/apache/log4j/test/witness/shallow.A2.5     |   15 +
 .../org/apache/log4j/test/witness/shallow.A2.6     |   15 +
 .../org/apache/log4j/test/witness/shallow.A2.7     |   15 +
 .../org/apache/log4j/test/witness/shallow.A2.8     |   25 +
 .../java/org/apache/log4j/test/xml/domTest1.xml    |   34 +
 .../java/org/apache/log4j/test/xml/domTest10.xml   |   31 +
 .../java/org/apache/log4j/test/xml/domTest11.xml   |   28 +
 .../java/org/apache/log4j/test/xml/domTest12.xml   |   24 +
 .../java/org/apache/log4j/test/xml/domTest2.xml    |   26 +
 .../java/org/apache/log4j/test/xml/domTest3.xml    |   41 +
 .../java/org/apache/log4j/test/xml/domTest4.xml    |   21 +
 .../java/org/apache/log4j/test/xml/domTest5.xml    |   18 +
 .../java/org/apache/log4j/test/xml/domTest6.xml    |   30 +
 .../java/org/apache/log4j/test/xml/domTest7.xml    |   24 +
 .../java/org/apache/log4j/test/xml/domTest8.xml    |   42 +
 .../java/org/apache/log4j/test/xml/domTest9.xml    |   32 +
 trunk/src/java/org/apache/log4j/test/xml/ext1.xml  |   26 +
 .../java/org/apache/log4j/test/xml/fallback1.xml   |   35 +
 .../apache/log4j/test/xml/stressAsyncAppender.xml  |   43 +
 .../java/org/apache/log4j/varia/DenyAllFilter.java |   35 +
 .../log4j/varia/ExternallyRolledFileAppender.java  |  204 +++
 .../apache/log4j/varia/FallbackErrorHandler.java   |   42 +
 .../org/apache/log4j/varia/LevelMatchFilter.java   |   29 +
 .../org/apache/log4j/varia/LevelRangeFilter.java   |   28 +
 .../java/org/apache/log4j/varia/ListAppender.java  |  104 ++
 .../org/apache/log4j/varia/ListModelAppender.java  |   81 +
 .../apache/log4j/varia/LogFilePatternReceiver.java |  827 +++++++++
 .../varia/LogFilePatternReceiverBeanInfo.java      |   48 +
 .../java/org/apache/log4j/varia/NullAppender.java  |   67 +
 trunk/src/java/org/apache/log4j/varia/Roller.java  |  117 ++
 .../java/org/apache/log4j/varia/SoundAppender.java |  111 ++
 .../org/apache/log4j/varia/StringMatchFilter.java  |   68 +
 trunk/src/java/org/apache/log4j/varia/package.html |   13 +
 .../org/apache/log4j/watchdog/FileWatchdog.java    |  103 ++
 .../log4j/watchdog/TimedLocationWatchdog.java      |  109 ++
 .../java/org/apache/log4j/watchdog/Watchdog.java   |   68 +
 .../apache/log4j/watchdog/WatchdogSkeleton.java    |  132 ++
 trunk/src/java/org/apache/log4j/xml/.cvsignore     |    1 +
 .../java/org/apache/log4j/xml/DOMConfigurator.java |  180 ++
 .../org/apache/log4j/xml/Log4jEntityResolver.java  |   61 +
 .../java/org/apache/log4j/xml/SAXErrorHandler.java |   46 +
 .../log4j/xml/UtilLoggingEntityResolver.java       |   55 +
 .../apache/log4j/xml/UtilLoggingXMLDecoder.java    |  422 +++++
 .../src/java/org/apache/log4j/xml/XMLDecoder.java  |  428 +++++
 trunk/src/java/org/apache/log4j/xml/XMLLayout.java |  221 +++
 .../java/org/apache/log4j/xml/examples/.cvsignore  |    1 +
 .../log4j/xml/examples/ReportParserError.java      |   33 +
 .../org/apache/log4j/xml/examples/XMLSample.java   |   87 +
 .../org/apache/log4j/xml/examples/extension1.xml   |   28 +
 .../org/apache/log4j/xml/examples/extension2.xml   |   35 +
 .../org/apache/log4j/xml/examples/package.html     |   26 +
 .../java/org/apache/log4j/xml/examples/sample1.xml |   22 +
 .../java/org/apache/log4j/xml/examples/sample2.xml |   31 +
 .../java/org/apache/log4j/xml/examples/sample3.xml |   28 +
 .../java/org/apache/log4j/xml/examples/sample4.xml |   22 +
 .../java/org/apache/log4j/xml/examples/sample5.xml |   34 +
 trunk/src/java/org/apache/log4j/xml/log4j.dtd      |  181 ++
 trunk/src/java/org/apache/log4j/xml/logger.dtd     |   68 +
 trunk/src/java/org/apache/log4j/xml/package.html   |   16 +
 .../src/java/org/apache/log4j/xml/test/.cvsignore  |    3 +
 .../java/org/apache/log4j/xml/test/DOMTest.java    |   86 +
 .../src/java/org/apache/log4j/xml/test/testlog.xml |   23 +
 trunk/src/log4j-coding-convention.xml              |  225 +++
 trunk/src/site/fml/faq.fml                         |    9 +
 trunk/src/site/resources/images/logo.jpg           |  Bin 0 -> 8184 bytes
 trunk/src/site/resources/images/ls-logo.jpg        |  Bin 0 -> 32725 bytes
 trunk/src/site/site.xml                            |   26 +
 trunk/src/sun_checks.xml                           |  131 ++
 trunk/src/xdocs/chainsaw.xml                       |  104 ++
 trunk/src/xdocs/codes.xml                          |  151 ++
 trunk/src/xdocs/contributors.xml                   |  160 ++
 trunk/src/xdocs/documentation.xml                  |  190 ++
 trunk/src/xdocs/download.xml                       |  346 ++++
 trunk/src/xdocs/earlier.xml                        |   27 +
 trunk/src/xdocs/faq.xml                            | 1908 +++++++++++++++++++
 trunk/src/xdocs/history.xml                        |   39 +
 trunk/src/xdocs/index.xml                          |   71 +
 trunk/src/xdocs/install-chainsaw.xml               |  123 ++
 trunk/src/xdocs/plan.xml                           |  288 +++
 trunk/src/xdocs/stylesheets/compatibility.xslt     |   76 +
 trunk/src/xdocs/stylesheets/lf5.xml                |   27 +
 trunk/src/xdocs/stylesheets/project.xml            |   32 +
 trunk/src/xdocs/stylesheets/site.vsl               |  318 ++++
 trunk/src/xdocs/ugli.xml                           |   18 +
 trunk/tests/.cvsignore                             |    8 +
 trunk/tests/README                                 |  107 ++
 trunk/tests/build.properties.sample                |   31 +
 trunk/tests/build.xml                              |  896 +++++++++
 trunk/tests/db.xml                                 |  232 +++
 trunk/tests/input/compress1.copy                   |   15 +
 trunk/tests/input/compress2.copy                   |  129 ++
 trunk/tests/input/compress3.copy                   |  143 ++
 trunk/tests/input/db/.cvsignore                    |    4 +
 trunk/tests/input/db/append-with-c3p0.xml          |   43 +
 trunk/tests/input/db/append-with-datasource1.xml   |   37 +
 .../tests/input/db/append-with-drivermanager1.xml  |   33 +
 trunk/tests/input/db/append-with-jndi1.xml         |   46 +
 .../input/db/append-with-pooled-datasource1.xml    |   42 +
 trunk/tests/input/db/deleteTables.sql              |    4 +
 trunk/tests/input/db/hsqldb.properties.sample      |   11 +
 trunk/tests/input/db/mysql.properties.sample       |   17 +
 trunk/tests/input/db/oracle.properties.sample      |   25 +
 trunk/tests/input/db/postgresql.properties.sample  |   28 +
 trunk/tests/input/db/read-with-datasource1.xml     |   52 +
 trunk/tests/input/db/read-with-drivermanager1.xml  |   40 +
 trunk/tests/input/db/read-with-jndi1.xml           |   45 +
 .../input/db/read-with-pooled-datasource1.xml      |   45 +
 trunk/tests/input/defaultInit3.properties          |    7 +
 trunk/tests/input/filter/simpleFilter1.xml         |   37 +
 trunk/tests/input/filter/simpleFilter2.xml         |   24 +
 trunk/tests/input/filter/simpleFilter3.xml         |   41 +
 trunk/tests/input/filter/simpleFilter4.xml         |   31 +
 trunk/tests/input/filter/simpleFilter5.xml         |   29 +
 trunk/tests/input/filter/simpleFilter6.xml         |   26 +
 trunk/tests/input/filter/simpleFilter7.xml         |   24 +
 .../input/hierarchy/hierarchyThreshold1.properties |   12 +
 .../input/hierarchy/hierarchyThreshold2.properties |    7 +
 .../input/hierarchy/hierarchyThreshold3.properties |    7 +
 .../input/hierarchy/hierarchyThreshold4.properties |    7 +
 .../input/hierarchy/hierarchyThreshold5.properties |    7 +
 .../input/hierarchy/hierarchyThreshold6.properties |   12 +
 .../input/hierarchy/hierarchyThreshold7.properties |   12 +
 .../input/hierarchy/hierarchyThreshold8.properties |   12 +
 trunk/tests/input/joran/asyncTest.xml              |   29 +
 trunk/tests/input/joran/badEnd1.xml                |   15 +
 trunk/tests/input/joran/badEnd2.xml                |   16 +
 trunk/tests/input/joran/basicLoop.xml              |    8 +
 trunk/tests/input/joran/conversionRule.xml         |   22 +
 trunk/tests/input/joran/exception1.xml             |   14 +
 trunk/tests/input/joran/illFormed.xml              |    8 +
 trunk/tests/input/joran/newRule1.xml               |   10 +
 trunk/tests/input/joran/parser1.xml                |   21 +
 trunk/tests/input/joran/parser2.xml                |   32 +
 trunk/tests/input/joran/parser3.xml                |   30 +
 trunk/tests/input/joran/simple1.xml                |   17 +
 trunk/tests/input/joran/simple2.xml                |   17 +
 trunk/tests/input/multiplex/configTest-1.xml       |   23 +
 trunk/tests/input/ndc/NDC1.properties              |   11 +
 trunk/tests/input/net/socketServer1.properties     |   14 +
 trunk/tests/input/net/socketServer2.properties     |   14 +
 trunk/tests/input/net/socketServer3.properties     |   11 +
 trunk/tests/input/net/socketServer4.properties     |   11 +
 trunk/tests/input/net/socketServer5.properties     |   11 +
 trunk/tests/input/net/socketServer6.properties     |   11 +
 trunk/tests/input/net/socketServer7.properties     |   11 +
 trunk/tests/input/net/socketServer8.properties     |   11 +
 .../input/pattern/patternLayout.mdc.1.properties   |   11 +
 .../tests/input/pattern/patternLayout1.properties  |   11 +
 .../tests/input/pattern/patternLayout10.properties |   11 +
 .../tests/input/pattern/patternLayout11.properties |   11 +
 .../tests/input/pattern/patternLayout12.properties |   11 +
 .../tests/input/pattern/patternLayout13.properties |   11 +
 .../tests/input/pattern/patternLayout14.properties |   11 +
 .../tests/input/pattern/patternLayout2.properties  |   11 +
 .../tests/input/pattern/patternLayout3.properties  |   11 +
 .../tests/input/pattern/patternLayout4.properties  |   11 +
 .../tests/input/pattern/patternLayout5.properties  |   11 +
 .../tests/input/pattern/patternLayout6.properties  |   12 +
 .../tests/input/pattern/patternLayout7.properties  |   11 +
 .../tests/input/pattern/patternLayout8.properties  |   11 +
 .../tests/input/pattern/patternLayout9.properties  |   11 +
 trunk/tests/input/performance/file-bufferedio.xml  |   20 +
 trunk/tests/input/performance/file-noflush.xml     |   20 +
 trunk/tests/input/performance/file.xml             |   19 +
 .../tests/input/performance/null-appender-info.xml |   28 +
 trunk/tests/input/performance/null-appender.xml    |   16 +
 trunk/tests/input/performance/telnet.xml           |   17 +
 trunk/tests/input/rolling/filter1.xml              |   37 +
 trunk/tests/input/rolling/obsoleteDRFA1.properties |   12 +
 trunk/tests/input/rolling/obsoleteERFA1.properties |   13 +
 trunk/tests/input/rolling/obsoleteRFA1.properties  |   12 +
 trunk/tests/input/rolling/time1.xml                |   26 +
 trunk/tests/input/ugli/basic.xml                   |   17 +
 .../watchdog/watchdog.FileWatchdog.test1_1.xml     |   33 +
 .../watchdog/watchdog.FileWatchdog.test1_2.xml     |   10 +
 .../watchdog.FileWatchdog.test2_1.properties       |   14 +
 .../watchdog.FileWatchdog.test2_2.properties       |    4 +
 trunk/tests/input/xml/DOMTest1.xml                 |   40 +
 trunk/tests/input/xml/DOMTest2.xml                 |   40 +
 trunk/tests/input/xml/DOMTest3.xml                 |   40 +
 trunk/tests/input/xml/DOMTest4.xml                 |   29 +
 trunk/tests/input/xml/DOMTest4_A1.xml              |    9 +
 trunk/tests/input/xml/DOMTest4_A2.xml              |    7 +
 trunk/tests/input/xml/customLevel1.xml             |   23 +
 trunk/tests/input/xml/customLevel2.xml             |   32 +
 trunk/tests/input/xml/customLevel3.xml             |   34 +
 trunk/tests/input/xml/customLevel4.xml             |   26 +
 trunk/tests/input/xml/customLogger1.xml            |   26 +
 trunk/tests/input/xml/customLogger2.xml            |   34 +
 trunk/tests/input/xml/customLogger3.xml            |   26 +
 trunk/tests/input/xml/defaultInit.xml              |   17 +
 .../input/xml/filters.LevelMatchFilter.test4.0.xml |   23 +
 .../input/xml/filters.LevelMatchFilter.test4.1.xml |   23 +
 .../input/xml/filters.LevelMatchFilter.test4.2.xml |   23 +
 .../input/xml/filters.LevelMatchFilter.test4.3.xml |   23 +
 .../input/xml/filters.LevelMatchFilter.test4.4.xml |   23 +
 trunk/tests/integration/.cvsignore                 |    2 +
 trunk/tests/integration/README.txt                 |   39 +
 trunk/tests/integration/build.properties.sample    |    5 +
 trunk/tests/integration/build.xml                  |  193 ++
 trunk/tests/integration/client-log4j.xml           |   28 +
 trunk/tests/integration/client.properties          |   10 +
 trunk/tests/integration/lib/.cvsignore             |    8 +
 trunk/tests/integration/otherlib/.cvsignore        |    1 +
 trunk/tests/integration/server.properties          |    1 +
 .../tests/integration/src/java/SampleServlet.java  |   50 +
 trunk/tests/integration/src/java/TestAppender.java |   18 +
 .../src/webapp/WEB-INF/classes/.cvsignore          |    1 +
 .../webapp/WEB-INF/classes/test-log4j.xml.sample   |   46 +
 trunk/tests/integration/src/webapp/WEB-INF/web.xml |   26 +
 trunk/tests/integration/target/.cvsignore          |    5 +
 .../integration/test/java/TestSampleServlet.java   |   42 +
 trunk/tests/lib/.cvsignore                         |   11 +
 trunk/tests/performance.xml                        |  169 ++
 trunk/tests/resources/L7D_en_US.properties         |    3 +
 trunk/tests/resources/L7D_fr.properties            |    3 +
 trunk/tests/resources/L7D_fr_CH.properties         |    2 +
 trunk/tests/resources/history/GIL.logging          |   41 +
 trunk/tests/resources/history/kal0.txt             |   67 +
 trunk/tests/resources/history/kal1.txt             |   67 +
 trunk/tests/resources/history/kal2.txt             |   57 +
 trunk/tests/resources/history/torino0.txt          |   41 +
 trunk/tests/resources/history/torino1.txt          |   60 +
 trunk/tests/resources/jetty.jndi.properties        |    2 +
 trunk/tests/resources/reffs.jndi.properties        |    3 +
 trunk/tests/servlet.xml                            |   98 +
 .../org/apache/log4j/AbstractAppenderTest.java     |   77 +
 .../org/apache/log4j/AsyncAppenderTestCase.java    |  136 ++
 .../src/java/org/apache/log4j/CategoryTest.java    |  110 ++
 .../java/org/apache/log4j/ConsoleAppenderTest.java |   44 +
 .../src/java/org/apache/log4j/CoreTestSuite.java   |   56 +
 .../src/java/org/apache/log4j/DeadlockTest.java    |  101 +
 .../src/java/org/apache/log4j/EncodingTest.java    |  151 ++
 .../java/org/apache/log4j/FileAppenderTest.java    |  104 ++
 .../src/java/org/apache/log4j/HTMLLayoutTest.java  |  179 ++
 .../apache/log4j/HierarchyThresholdTestCase.java   |  118 ++
 trunk/tests/src/java/org/apache/log4j/Last.java    |   24 +
 .../src/java/org/apache/log4j/LayoutTest.java      |  167 ++
 .../tests/src/java/org/apache/log4j/LevelTest.java |  237 +++
 .../src/java/org/apache/log4j/LogManagerTest.java  |   75 +
 .../src/java/org/apache/log4j/LoggerTest.java      |  449 +++++
 .../src/java/org/apache/log4j/MinimumTest.java     |  222 +++
 .../src/java/org/apache/log4j/NDCTestCase.java     |   79 +
 .../java/org/apache/log4j/PatternLayoutTest.java   |  143 ++
 .../org/apache/log4j/PatternLayoutTestCase.java    |  449 +++++
 .../src/java/org/apache/log4j/PriorityTest.java    |  185 ++
 .../tests/src/java/org/apache/log4j/SimpleLog.java |   67 +
 .../src/java/org/apache/log4j/StressCategory.java  |  244 +++
 .../src/java/org/apache/log4j/TTCCLayoutTest.java  |  116 ++
 .../src/java/org/apache/log4j/VectorAppender.java  |   80 +
 .../java/org/apache/log4j/VectorErrorHandler.java  |  182 ++
 .../java/org/apache/log4j/WriterAppenderTest.java  |   56 +
 .../org/apache/log4j/customLogger/XLogger.java     |  141 ++
 .../apache/log4j/customLogger/XLoggerTestCase.java |   84 +
 .../log4j/db/BindDataSourceToJNDIAction.java       |  106 ++
 .../src/java/org/apache/log4j/db/DBPerfTest.java   |   60 +
 .../java/org/apache/log4j/db/FullCycleDBTest.java  |  269 +++
 .../org/apache/log4j/defaultInit/TestCase1.java    |   50 +
 .../org/apache/log4j/defaultInit/TestCase2.java    |   56 +
 .../org/apache/log4j/defaultInit/TestCase3.java    |   54 +
 .../org/apache/log4j/defaultInit/TestCase4.java    |   57 +
 .../org/apache/log4j/filter/SimpleFilterTest.java  |  102 ++
 .../apache/log4j/helpers/BoundedFIFOTestCase.java  |  231 +++
 .../apache/log4j/helpers/CyclicBufferTestCase.java |  161 ++
 .../org/apache/log4j/helpers/DateLayoutTest.java   |  268 +++
 .../log4j/helpers/LevelOptionConverterTest.java    |   88 +
 .../java/org/apache/log4j/helpers/LogLogTest.java  |   50 +
 .../log4j/helpers/OptionSubstitutionTest.java      |  168 ++
 .../log4j/helpers/ReaderWriterLockTestCase.java    |  205 +++
 .../org/apache/log4j/helpers/VerifierThread.java   |  227 +++
 .../tests/src/java/org/apache/log4j/html/Loop.java |   65 +
 .../org/apache/log4j/joran/InterpreterTest.java    |  400 ++++
 .../apache/log4j/joran/JoranConfiguratorTest.java  |  131 ++
 .../src/java/org/apache/log4j/joran/NOPAction.java |   39 +
 .../java/org/apache/log4j/joran/PatternTest.java   |  104 ++
 .../org/apache/log4j/joran/SimpleStoreTest.java    |  188 ++
 .../log4j/joran/SkippingInInterpreterTest.java     |  159 ++
 .../apache/log4j/joran/action/BadBeginAction.java  |   37 +
 .../apache/log4j/joran/action/BadEndAction.java    |   34 +
 .../org/apache/log4j/joran/action/HelloAction.java |   45 +
 .../log4j/joran/action/StackCounterAction.java     |   54 +
 .../org/apache/log4j/joran/action/TouchAction.java |   51 +
 .../java/org/apache/log4j/lbel/CoreParserTest.java |  113 ++
 .../java/org/apache/log4j/lbel/CountingReader.java |   66 +
 .../org/apache/log4j/lbel/CountingReaderTest.java  |  133 ++
 .../org/apache/log4j/lbel/EventEvaluationTest.java |  211 +++
 .../src/java/org/apache/log4j/lbel/ParserTest.java |  113 ++
 .../java/org/apache/log4j/lbel/ScanErrorTest.java  |   40 +
 .../org/apache/log4j/lbel/TokenStreamTest.java     |  279 +++
 .../log4j/multiplex/MultiplexAppenderTest.java     |  105 ++
 .../org/apache/log4j/net/SMTPAppenderTest.java     |   49 +
 .../org/apache/log4j/net/ShortSocketServer.java    |   89 +
 .../org/apache/log4j/net/SocketServerTestCase.java |  370 ++++
 .../org/apache/log4j/net/SyslogAppenderTest.java   |  354 ++++
 .../java/org/apache/log4j/net/XMLDecoderTest.java  |   40 +
 .../apache/log4j/nt/NTEventLogAppenderTest.java    |   57 +
 .../src/java/org/apache/log4j/or/ORTestCase.java   |  219 +++
 .../apache/log4j/pattern/CachedDateFormatTest.java |  398 ++++
 .../apache/log4j/pattern/FormattingInfoTest.java   |   93 +
 .../apache/log4j/pattern/NameAbbreviatorTest.java  |  303 +++
 .../log4j/pattern/Num343PatternConverter.java      |   39 +
 .../apache/log4j/pattern/PatternParserTest.java    |  182 ++
 .../apache/log4j/performance/GetLoggerTest.java    |   95 +
 .../org/apache/log4j/performance/LoggingLoop.java  |  181 ++
 .../java/org/apache/log4j/performance/Loop.java    |  101 +
 .../org/apache/log4j/performance/NOPWriter.java    |   54 +
 .../org/apache/log4j/performance/NewVsSetLen.java  |  226 +++
 .../org/apache/log4j/performance/NullAppender.java |   67 +
 .../org/apache/log4j/performance/SystemTime.java   |   64 +
 .../src/java/org/apache/log4j/performance/logging  |  375 ++++
 .../java/org/apache/log4j/performance/package.html |   19 +
 .../org/apache/log4j/plugins/PluginTestCase.java   |  634 +++++++
 .../java/org/apache/log4j/rolling/FileOpener.java  |   36 +
 .../log4j/rolling/FilterBasedRollingTest.java      |  132 ++
 .../ObsoleteDailyRollingFileAppenderTest.java      |  105 ++
 .../rolling/ObsoleteRollingFileAppenderTest.java   |   96 +
 .../org/apache/log4j/rolling/RenamingTest.java     |  102 ++
 .../apache/log4j/rolling/SizeBasedRollingTest.java |  375 ++++
 .../apache/log4j/rolling/TimeBasedRollingTest.java |  499 +++++
 .../log4j/rolling/helper/CompressTestCase.java     |   56 +
 .../rolling/helper/FileNamePatternTestCase.java    |  160 ++
 .../org/apache/log4j/scheduler/CountingJob.java    |   38 +
 .../org/apache/log4j/scheduler/PeriodicJob.java    |   90 +
 .../org/apache/log4j/scheduler/SchedulerTest.java  |  284 +++
 .../java/org/apache/log4j/selector/PassByJNDI.java |   86 +
 .../org/apache/log4j/spi/LoggingEventTest.java     |  215 +++
 .../apache/log4j/spi/ThrowableInformationTest.java |   68 +
 .../log4j/spi/location/LocationInfoTest.java       |  105 ++
 .../tests/src/java/org/apache/log4j/stressCategory |  899 +++++++++
 .../src/java/org/apache/log4j/stressCategory.pl    |   57 +
 .../log4j/util/AbsoluteDateAndTimeFilter.java      |   35 +
 .../org/apache/log4j/util/AbsoluteTimeFilter.java  |   33 +
 .../java/org/apache/log4j/util/BinaryCompare.java  |   64 +
 .../src/java/org/apache/log4j/util/Compare.java    |  141 ++
 .../java/org/apache/log4j/util/ControlFilter.java  |   43 +
 .../src/java/org/apache/log4j/util/Filter.java     |   39 +
 .../java/org/apache/log4j/util/ISO8601Filter.java  |   34 +
 .../apache/log4j/util/JunitTestRunnerFilter.java   |   46 +
 .../org/apache/log4j/util/LineNumberFilter.java    |   34 +
 .../org/apache/log4j/util/RelativeTimeFilter.java  |   35 +
 .../apache/log4j/util/SerializationTestHelper.java |  146 ++
 .../org/apache/log4j/util/SunReflectFilter.java    |   39 +
 .../java/org/apache/log4j/util/Transformer.java    |   68 +
 .../log4j/util/UnexpectedFormatException.java      |   24 +
 .../apache/log4j/util/XMLLineAttributeFilter.java  |   37 +
 .../apache/log4j/util/XMLSequenceNumberFilter.java |   40 +
 .../org/apache/log4j/util/XMLTimestampFilter.java  |   36 +
 .../varia/ExternallyRolledFileAppenderTest.java    |  140 ++
 .../log4j/varia/LevelMatchFilterTestCase.java      |  140 ++
 .../log4j/varia/LevelRangeFilterTestCase.java      |  203 ++
 .../log4j/watchdog/FileWatchdogTestCase.java       |  226 +++
 .../org/apache/log4j/xml/CustomLevelTestCase.java  |  109 ++
 .../src/java/org/apache/log4j/xml/DOMTest.java     |  275 +++
 .../src/java/org/apache/log4j/xml/XLevel.java      |   74 +
 .../java/org/apache/log4j/xml/XMLDecoderTest.java  |   40 +
 .../java/org/apache/log4j/xml/XMLLayoutTest.java   |  317 ++++
 .../org/apache/log4j/xml/XMLLayoutTestCase.java    |  215 +++
 trunk/tests/ugli-test.xml                          |  102 ++
 trunk/tests/webapps/Tata/.cvsignore                |    3 +
 trunk/tests/webapps/Tata/build.properties.sample   |    6 +
 trunk/tests/webapps/Tata/build.xml                 |   42 +
 trunk/tests/webapps/Tata/src/WEB-INF/web.xml       |   29 +
 trunk/tests/webapps/Tata/src/html/index.html       |   11 +
 .../webapps/Tata/src/java/wombat/InitServlet.java  |   16 +
 .../webapps/Tata/src/java/wombat/XServlet.java     |   29 +
 trunk/tests/webapps/Titi/.cvsignore                |    3 +
 trunk/tests/webapps/Titi/build.properties.sample   |    6 +
 trunk/tests/webapps/Titi/build.xml                 |   42 +
 trunk/tests/webapps/Titi/src/WEB-INF/web.xml       |   29 +
 trunk/tests/webapps/Titi/src/html/index.html       |   11 +
 .../webapps/Titi/src/java/wombat/InitServlet.java  |   16 +
 .../webapps/Titi/src/java/wombat/XServlet.java     |   29 +
 trunk/tests/webapps/Titi/titi.war                  |  Bin 0 -> 2384 bytes
 trunk/tests/webapps/Util/.cvsignore                |    3 +
 trunk/tests/webapps/Util/build.properties.sample   |   11 +
 trunk/tests/webapps/Util/build.xml                 |   36 +
 trunk/tests/webapps/Util/src/java/wombat/Util.java |   39 +
 trunk/tests/webapps/Util/util.jar                  |  Bin 0 -> 1074 bytes
 trunk/tests/witness/LevelMatchFilter_accept        |    5 +
 trunk/tests/witness/LevelMatchFilter_deny          |   20 +
 trunk/tests/witness/LevelRangeFilter_accept        |   46 +
 trunk/tests/witness/LevelRangeFilter_neutral       |   46 +
 trunk/tests/witness/NDCMatchFilter_accept          |   11 +
 trunk/tests/witness/NDCMatchFilter_deny            |   21 +
 trunk/tests/witness/compress1.txt.gz               |  Bin 0 -> 413 bytes
 trunk/tests/witness/compress2.txt.gz               |  Bin 0 -> 1768 bytes
 trunk/tests/witness/encoding/UTF-16.log            |  Bin 0 -> 88 bytes
 trunk/tests/witness/encoding/UTF-16BE.log          |  Bin 0 -> 86 bytes
 trunk/tests/witness/encoding/UTF-16LE.log          |  Bin 0 -> 86 bytes
 trunk/tests/witness/encoding/UTF-8.log             |    3 +
 trunk/tests/witness/encoding/ascii.log             |    3 +
 trunk/tests/witness/encoding/latin1.log            |    3 +
 trunk/tests/witness/fallback                       |   62 +
 trunk/tests/witness/filter/simpleFilter.1          |    4 +
 trunk/tests/witness/hierarchy/hierarchyThreshold.1 |    0
 trunk/tests/witness/hierarchy/hierarchyThreshold.2 |    1 +
 trunk/tests/witness/hierarchy/hierarchyThreshold.3 |    2 +
 trunk/tests/witness/hierarchy/hierarchyThreshold.4 |    3 +
 trunk/tests/witness/hierarchy/hierarchyThreshold.5 |    4 +
 trunk/tests/witness/hierarchy/hierarchyThreshold.6 |    5 +
 trunk/tests/witness/hierarchy/hierarchyThreshold.7 |    6 +
 trunk/tests/witness/hierarchy/hierarchyThreshold.8 |    6 +
 trunk/tests/witness/joran/async                    |   62 +
 .../witness/multiplex/multiplex-test1_bob.txt      |    2 +
 .../witness/multiplex/multiplex-test1_jane.txt     |    2 +
 trunk/tests/witness/ndc/NDC.1                      |   25 +
 trunk/tests/witness/net/socketServer.1             |   31 +
 trunk/tests/witness/net/socketServer.2             |   31 +
 trunk/tests/witness/net/socketServer.3             |   31 +
 trunk/tests/witness/net/socketServer.4             |   31 +
 trunk/tests/witness/net/socketServer.5             |   31 +
 trunk/tests/witness/net/socketServer.6             |   31 +
 trunk/tests/witness/net/socketServer.7             |   31 +
 trunk/tests/witness/net/socketServer.8             |   31 +
 trunk/tests/witness/pattern/patternLayout.1        |   75 +
 trunk/tests/witness/pattern/patternLayout.10       |   75 +
 trunk/tests/witness/pattern/patternLayout.11       |   75 +
 trunk/tests/witness/pattern/patternLayout.12       |   75 +
 trunk/tests/witness/pattern/patternLayout.13       |   75 +
 trunk/tests/witness/pattern/patternLayout.14       |   75 +
 trunk/tests/witness/pattern/patternLayout.2        |   75 +
 trunk/tests/witness/pattern/patternLayout.3        |   75 +
 trunk/tests/witness/pattern/patternLayout.4        |   75 +
 trunk/tests/witness/pattern/patternLayout.5        |   75 +
 trunk/tests/witness/pattern/patternLayout.6        |   75 +
 trunk/tests/witness/pattern/patternLayout.7        |   75 +
 trunk/tests/witness/pattern/patternLayout.8        |   75 +
 trunk/tests/witness/pattern/patternLayout.9        |   75 +
 trunk/tests/witness/pattern/patternLayout.mdc.1    |    1 +
 trunk/tests/witness/pattern/patternLayout.mdc.2    |   12 +
 .../tests/witness/plugins.PluginTestCase.test1.txt |   89 +
 .../tests/witness/plugins.PluginTestCase.test2.txt |   63 +
 trunk/tests/witness/rolling/renaming.0             |    1 +
 trunk/tests/witness/rolling/renaming.1             |    1 +
 trunk/tests/witness/rolling/renaming.2             |    2 +
 trunk/tests/witness/rolling/sbr-test2.0            |   10 +
 trunk/tests/witness/rolling/sbr-test2.1            |   10 +
 trunk/tests/witness/rolling/sbr-test2.log          |    5 +
 trunk/tests/witness/rolling/sbr-test3.0.gz         |  Bin 0 -> 68 bytes
 trunk/tests/witness/rolling/sbr-test3.1.gz         |  Bin 0 -> 68 bytes
 trunk/tests/witness/rolling/sbr-test3.log          |    5 +
 trunk/tests/witness/rolling/sbr-test4.log          |   25 +
 trunk/tests/witness/rolling/tbr-test1.0            |    0
 trunk/tests/witness/rolling/tbr-test1.1            |    2 +
 trunk/tests/witness/rolling/tbr-test1.2            |    2 +
 trunk/tests/witness/rolling/tbr-test1.3            |    1 +
 trunk/tests/witness/rolling/tbr-test2.0            |    0
 trunk/tests/witness/rolling/tbr-test2.1            |    2 +
 trunk/tests/witness/rolling/tbr-test2.2            |    2 +
 trunk/tests/witness/rolling/tbr-test2.3            |    1 +
 trunk/tests/witness/rolling/tbr-test3.0.gz         |  Bin 0 -> 32 bytes
 trunk/tests/witness/rolling/tbr-test3.1.gz         |  Bin 0 -> 72 bytes
 trunk/tests/witness/rolling/tbr-test3.2.gz         |  Bin 0 -> 72 bytes
 trunk/tests/witness/rolling/tbr-test3.3            |    1 +
 trunk/tests/witness/rolling/tbr-test4.0            |    0
 trunk/tests/witness/rolling/tbr-test4.1            |    2 +
 trunk/tests/witness/rolling/tbr-test4.2            |    2 +
 trunk/tests/witness/rolling/tbr-test4.3            |    1 +
 trunk/tests/witness/rolling/tbr-test5.0            |    0
 trunk/tests/witness/rolling/tbr-test5.1            |    2 +
 trunk/tests/witness/rolling/tbr-test5.2            |    2 +
 trunk/tests/witness/rolling/tbr-test5.3            |    1 +
 trunk/tests/witness/rolling/tbr-test6.0.gz         |  Bin 0 -> 20 bytes
 trunk/tests/witness/rolling/tbr-test6.1.gz         |  Bin 0 -> 72 bytes
 trunk/tests/witness/rolling/tbr-test6.2.gz         |  Bin 0 -> 72 bytes
 trunk/tests/witness/rolling/tbr-test6.3            |    1 +
 trunk/tests/witness/serialization/exception.bin    |  Bin 0 -> 1919 bytes
 trunk/tests/witness/serialization/info.bin         |  Bin 0 -> 60 bytes
 trunk/tests/witness/serialization/location.bin     |  Bin 0 -> 612 bytes
 trunk/tests/witness/serialization/mdc.bin          |  Bin 0 -> 505 bytes
 trunk/tests/witness/serialization/ndc.bin          |  Bin 0 -> 485 bytes
 trunk/tests/witness/serialization/simple.bin       |  Bin 0 -> 475 bytes
 trunk/tests/witness/simple                         |   37 +
 trunk/tests/witness/ttcc                           |   37 +
 .../watchdog/watchdog.FileWatchdog.test1.txt       |    9 +
 .../watchdog/watchdog.FileWatchdog.test2.txt       |    9 +
 trunk/tests/witness/xml/customLevel.1              |    5 +
 trunk/tests/witness/xml/customLevel.2              |    5 +
 trunk/tests/witness/xml/customLevel.3              |    1 +
 trunk/tests/witness/xml/customLevel.4              |    5 +
 trunk/tests/witness/xml/customLogger.1             |   18 +
 trunk/tests/witness/xml/customLogger.2             |    1 +
 trunk/tests/witness/xml/dom.A1.1                   |   93 +
 trunk/tests/witness/xml/dom.A1.2                   |   93 +
 trunk/tests/witness/xml/dom.A1.3                   |   93 +
 trunk/tests/witness/xml/dom.A1.4                   |   93 +
 trunk/tests/witness/xml/dom.A2.1                   |   62 +
 trunk/tests/witness/xml/dom.A2.2                   |   62 +
 trunk/tests/witness/xml/dom.A2.3                   |   62 +
 trunk/tests/witness/xml/dom.A2.4                   |   62 +
 trunk/tests/witness/xml/xmlLayout.1                |  112 ++
 trunk/tests/witness/xml/xmlLayout.2                |  127 ++
 trunk/tests/witness/xml/xmlLayout.3                |    5 +
 trunk/tests/witness/xml/xmlLayout.mdc.1            |    8 +
 trunk/tests/witness/xml/xmlLayout.mdc.2            |    8 +
 trunk/tests/witness/xml/xmlLayout.null             |   24 +
 999 files changed, 94225 insertions(+)

diff --git a/trunk/.cvsignore b/trunk/.cvsignore
new file mode 100644
index 0000000..2c0a080
--- /dev/null
+++ b/trunk/.cvsignore
@@ -0,0 +1,27 @@
+goEnv*
+dist
+.classpath
+build.properties
+log4j-1.3alpha.jar
+log4j-chainsaw-1.3alpha.jar
+log4j-lf5-1.3alpha.jar
+.project
+IDEAS
+velocity.log.1
+velocity.log
+log4j-1.3alpha0.jar
+log4j-chainsaw-1.3alpha0.jar
+log4j-lf5-1.3alpha0.jar
+chainsaw-bundle
+chainsaw-bundle.zip
+webstart-dependant-receivers.jar-1.3alpha.jar
+.settings
+log4j-1.3alpha-1.jar
+log4j-chainsaw-1.3alpha-1.jar
+log4j-1.3alpha-?.jar
+log4j-chainsaw-1.3alpha-?.jar
+ugli-*.jar
+classes
+bin
+log4j-*.jar
+tmp
diff --git a/trunk/BRANCHES b/trunk/BRANCHES
new file mode 100644
index 0000000..da0e39d
--- /dev/null
+++ b/trunk/BRANCHES
@@ -0,0 +1,61 @@
+
+Given that log4j 1.3 is not likely to be released before a few months,
+I have created a branch called v1_2-branch in our CVS repository. The
+branch was created by issuing the following command:
+
+cvs -d :ext:ceki@cvs.apache.org:/home/cvs rtag -b -r v1_2final v1_2-branch jakarta-log4j
+
+Using the 1.2 branch, we can incorporate patches to log4j version 1.2
+while version 1.3 continues to be developed on the main trunk. For
+example, we can officially release LogFactor5 (including
+documentation) already in log4j 1.2.1.
+
+The command to access the v1_2-branch is:
+
+cvs -d XYZ checkout -r v1_2-branch jakarta-log4j
+
+where XYZ is the remote repository name, that is
+":ext:ceki@cvs.apache.org:/home/cvs" for me.
+
+Alternatively, you can issue following update command from within any
+existing work copy.
+
+  cvs update -r v1_2-branch
+
+Working with branches is not completely trivial and requires a little
+coordination between committers, in particular in relation with branch
+merge operations. In order to avoid multiple merge conflicts, each
+time we merge from the 1.2 branch to the main trunk, we should tag the
+merged version on the 1.2 branch. Subsequent merges should use the tag
+referring to the latest merged version of the branch. Also do not
+forget to publicly announce a merge operation.
+
+I am suggesting that (1.2 -> trunk) merge operations be done in a
+concerted manner. Before doing a merge you tell everyone that you are
+going to do a merge, you execute the merge operation, and then tag the
+merged version on the 1.2 branch, for example v_1_2_-merged-bug666
+
+The *next* merge operation would be performed as
+
+  cvs update -j v_1_2_-merged-bug666 -j v1_2-branch
+
+from within a working copy of the *trunk*. This merge operation would
+obviously also need to be tagged. According to the CVS manual, this
+procedure eliminates the side effects of merging already merged
+changes.
+
+Bug fixes should and documentation improvements, should be made to the
+1.2 branch, not the trunk. I'll take care of merging the changes to
+the main trunk.
+
+If this sounds like mambo jumbo, I urge you to consult the CVS
+documentation and experiment with branches before hitting the log4j
+repository. Branches are not that complicated really although they
+require slightly more discipline on the part of committers. Do not
+hesitate to shout if you need help.
+
+If you have a better alternative for working with branches please let
+us know.
+
+--
+Ceki
\ No newline at end of file
diff --git a/trunk/HOWTOBUILD.txt b/trunk/HOWTOBUILD.txt
new file mode 100644
index 0000000..0bc816e
--- /dev/null
+++ b/trunk/HOWTOBUILD.txt
@@ -0,0 +1,31 @@
+HOWTOBUILD.txt
+==============
+
+This document outlines the steps required to build and run the log4j sandbox classes.
+
+Comments/Changes/Bugs for this document and build process: 
+  * Log4j Developers list (log4j-dev@logging.apache.org)
+
+
+Assumptions
+===========
+* Familiar with Ant, and have it installed (http://ant.apache.org/) 
+  (requires the 1.5.x series of Ant, including Conditions support)
+
+Step-by-Step to build Log4j-Sandbox
+======================================
+
+1. Download logging-log4j (you've probably already done this if you're reading
+   this...)
+
+2. Copy the build.properties.sample file -> build.properties
+
+3. Edit the build.properties file and modify to suit your needs.  In particular
+  * Ensure the "Library Path Stuff" section contains correct relative/full paths to the
+    relevant libraries (You might need to source these from the 'Net)
+  
+4. From the logging-log4j root directory, type:
+
+      ant jar
+    
+   That's it ;)
\ No newline at end of file
diff --git a/trunk/INSTALL.txt b/trunk/INSTALL.txt
new file mode 100644
index 0000000..a046853
--- /dev/null
+++ b/trunk/INSTALL.txt
@@ -0,0 +1,175 @@
+
+===========
+Using log4j
+===========
+	
+1) First untar or unzip the distribution file.
+
+2) Assuming you chose to extract the distribution in to the
+   PATH_OF_YOUR_CHOICE, untarring the distribution file should create
+   a logging-log4j-VERSION directory, where VERSION is the log4j
+   version number, under PATH_OF_YOUR_CHOICE. We will refer to the
+   directory PATH_OF_YOUR_CHOICE/logging-log4j-VERSION/ as $LOG4J_HOME/.
+
+3) Assuming you are using log4j version 1.3, add
+   $LOG4J_HOME/log4j-1.3.jar to your CLASSPATH,
+   
+4) You can now test your installation by first compiling the following
+   simple program.
+
+    import org.apache.log4j.Logger;
+    import org.apache.log4j.BasicConfigurator;
+    
+    public class Hello {
+    
+      static Logger logger = Logger.getLogger(Hello.class);
+    
+      public static void main(String argv[]) {
+    	BasicConfigurator.configure();
+    	logger.debug("Hello world.");
+    	logger.info("What a beatiful day.");
+      }
+    }
+
+
+   After compilation, try it out by issuing the command
+
+      java Hello
+  
+   You should see log statements appearing on the console.
+
+5) Refer to the javadoc documentation and the user manual on how to
+   include log statements in your own code.
+
+=========
+JAR files
+=========
+
+The log4j distribution comes with several jar files under the
+LOG4J_HOME/ directory.
+
+* log4j-VERSION.jar  
+
+  Contains the core log4j classes. It also includes UGLI API hardwired
+  to use log4j.
+
+* log4j-smtp.jar
+
+  Contains SMTPAppender and associated classes.
+
+* log4j-oro.jar
+
+  Contains LogFilePatternReceiver and LikeRule classes which are
+  dependent on jakarta-oro.
+
+ SMTPAppender and associated classes.
+
+* log4j-xml.jar      
+  
+  Contains several optional classes from the org.apache.log4j.xml package.
+
+* log4j-optional.jar      
+
+  Contains several optional appenders/receivers from the
+  org.apache.log4j.net package.
+
+* log4j-db.jar
+
+  Contains DBAppender/DBReceiver and associated classes.
+
+* log4j-jms.jar
+
+  Contains JMSAppender/JMSReceiver and associated classes.
+
+* ugli-nop.jar 
+
+  UGLI hardwired to use the NOP implementation.
+
+* ugli-simple.jar 
+
+  UGLI hardwired to use the SimpleLogger implementation.
+
+* ugli-jdk14.jar 
+
+  UGLI hardwired to use the java.util.logger package.
+
+
+==================   
+log4j dependencies
+==================
+   
+Log4j is based on JDK 1.2 with the following additional requirements:
+
+    ----------------------------
+    Package org.apache.log4j.xml 
+    ----------------------------
+
+    The DOMConfigurator is based on the DOM Level 1 API. The
+    DOMConfigurator.configure(Element) method will work with any
+    XML parser that will pass it a DOM tree.
+    
+    The DOMConfigurator.configure(String filename) method and its variants
+    require a JAXP compatible XMLparser, for example the Apache Xerces
+    parser. Compiling the DOMConfigurator requires the presence of a
+    JAXP parser in the classpath.  
+
+    Given that Ant already ships with a compatible XML parser, you do
+    *not* need to worry about setting the parser when building,
+    i.e. compiling, log4j.
+
+    ------------
+    SMTPAppender
+    ------------
+
+    The SMTPAppender relies on the JavaMail API. It has been tested with
+    JavaMail API version 1.2. The JavaMail API requires the
+    JavaBeans Activation Framework package. You can download the
+    JavaMail API at:
+
+	http://java.sun.com/products/javamail/
+
+    and the JavaBeans Activation Framework at:
+
+	http://java.sun.com/beans/glasgow/jaf.html
+
+    ----------------------
+    DBAppender/DB Receiver
+    ----------------------
+    
+    DBAppender/DB Receiver have a dependency on the JDBC API.
+    
+    -----------
+    JMSAppender
+    -----------
+  
+    The JMSAppender requires the JMS API as well as JNDI. The JMS API
+    is usually bundled with the products of the vendors listed under
+
+       http://java.sun.com/products/jms/vendors.html
+
+    -----------------------
+    JUnit testing framework
+    -----------------------
+
+    Log4j uses the JUnit framework version 3.7 for internal unit
+    testing.  If you want to compile the source code in the tests/
+    directory, then you will need JUnit. JUnit is available from:
+
+          http://www.junit.org
+
+==============
+Building log4j
+==============
+    
+Like most java appilicatios today, log4j relies on ANT as its build
+tool. ANT is availale from "http://logging.apache.org/ant/".  ANT
+requires a build file called build.xml which is part of this
+distribution. Required components from other projects are specified in
+the build.properties and example of which is supplied in the
+build.properties.sample file.
+
+In case of problems send an e-mail note to
+log4j-user@logging.apache.org.  Please do not directly e-mail log4j
+developers. The answer to your question might be useful to other
+users. Moreover, there are many knowledgeable users on the log4j-user
+mailing lists who can quickly answer your questions.
diff --git a/trunk/KEYS b/trunk/KEYS
new file mode 100644
index 0000000..9f0dab0
--- /dev/null
+++ b/trunk/KEYS
@@ -0,0 +1,192 @@
+This file contains the PGP&GPG keys of various Apache developers.
+Please don't use them for email unless you have to. Their main
+purpose is code signing.
+
+Apache users: pgp < KEYS
+Apache developers: 
+        (pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
+      or
+        (gpg --fingerprint --list-sigs <your name>
+             && gpg --armor --export <your name>) >> this file.
+
+Apache developers: please ensure that your key is also available via the
+PGP keyservers (such as pgpkeys.mit.edu).
+
+
+Type bits /keyID    Date       User ID
+pub  1024D/0C7C4F05 2005/06/10 Mark Dwayne Womack <mw...@apache.org>
+                               Mark Dwayne Womack <ma...@womacknet.com>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP Key Server 0.9.6
+
+mQGiBEKqEj8RBADR8e9Xl0kFJqv8SspvDP8kUsivBxWVZz+HVKf0pL2wOie0LfsF
+E0Y3dI7k0k8i8KXtWYmHY3dpJGLUaruqIRxPFen/No56Q7udlK5hj7vKEUb46krx
+sLgik1s+WX8+61Yu5cLuGdqnfwRGuNV7uf3JF1Q78VXIyUlS4BFMXGtqjwCg//s6
+1m7N3p8AtIgma+U13rEkq9cEAJ6l9eEPgOdRx53nKkCgkVpDxxhpbg90STQ1s94f
+rZIc+y5LN7FEERiQSiXvuzCwxiritiv+03sqdjYicxYZux+aladi0mHDIdgZkrAP
+MrRJ+8AKs7jv+WXcyaJcja8h3IZLShszgUM6uCW4Wr8mzZ+ns/65ihe4A/jS/Gu+
+cD44A/9doNrvOnNXPD+N/R9ME3zS6FY8d5F6f8oxZOEsMll/AG1HhOR4yxOmZMOl
++ZTg9AacHWMtTkjbs6JkT6uA8+tU+txoYjofkaGcJgq/SQYen89ifXZXVkUMWjqL
+ioUUKCsu4OQPnH5k3jCQp7DrkpDAgIBGZ5F3QGaYsrkVjxNoE7QnTWFyayBEd2F5
+bmUgV29tYWNrIDxtd29tYWNrQGFwYWNoZS5vcmc+iEYEEBECAAYFAkKwy1kACgkQ
+vhbJXS4RQyKOYQCfddSBIMCd3kaFPvL90/piH/QIdIgAnRwG83V+KMRltnPRclDH
+IcTI5unMiQBOBBARAgAOBQJCqhI/BAsDAgECGQEACgkQErKHWAx8TwWGeACgnN9d
+jKDT2mjBKnApaDkMzmAaMvMAoKEcdBBCx62RPNIEBnxZ6zAxH244tC1NYXJrIER3
+YXluZSBXb21hY2sgPG1hcmt3b21hY2tAd29tYWNrbmV0LmNvbT6IRgQQEQIABgUC
+QrDLXgAKCRC+FsldLhFDIgvLAJ9VsCFN6uBcObkb+UCN70ukHH5VWQCdEjPNvKCs
+c4+FGbTTsEoabhoNhsuJAEsEEBECAAsFAkKqFqUECwMCAQAKCRASsodYDHxPBeU1
+AKDUIGqVzFZDXgK8PcLW8OlL2dXRmgCgwwxRkgpzuKNMnkphSZNend3VdJa5Ag0E
+QqoSPxAIAPZCV7cIfwgXcqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQ
+B8bLQ6mUrfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F
+/Ha8g8VHMGHOfMlm/xX5u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280g
+tJ3kkQc2azNsOA1FHQ98iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0Oj
+HRhs3jMhLLUq/zzhsSlAGBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9
+ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsAAgIH/2A8l4YFI5dYs5ZV3OgspEh0Qa/N
+qd/JiVWBdygI77zp9TEgUtFBPDItEjmJq8sgnao0Cd5d68l9c+PQJ1xr4fOpdug0
+YmYUgIaKutha3SSNRbD+T0WYmtTO5A4wxbsF3hYU7fvBJrt8gnO4tx6KAn/O2rRk
+wPfNTZ1EdnKttZDM2Mz4OiK0SsQ9mS7zP+HPx3kzdl1Oj0Vk2tUElD1R1hVjLa/o
+v5YgJCrwSD7RfCZAOEoPxXXN6StCqW1zT6HgcSR0clM5BC+ZyBJzczzD9I5+TrlH
+d3ISaCOuP5NeYQdTsQ446bjiNk7LT25gNHF6U6WjmLQ3lXCz4kNoBG6fiOKIRgQY
+EQIABgUCQqoSPwAKCRASsodYDHxPBQ7wAKD4DO0Se4+SvSqUKDfxhI0lJTgK0gCg
+0lICv0KXT6PKyTndK+lr6K2AL4o=
+=GKga
+-----END PGP PUBLIC KEY BLOCK-----
+
+Type bits      keyID      Date       User ID
+DSS  3072/1024 0x7C037D42 2003/08/05 *** DEFAULT SIGNING KEY ***
+                                     Yoav Shapira <yo...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 6.5.8
+
+mQGiBD8u/mgRBAD5WKD5xF3CLrnABeS1DvQQhYH+tJjvAmyZgFkYwaQT7eiiOzLa
+PC5knbcBC4nuw+8OOPDFw0Ghb2MFogQzRxD6gpPH2t9eEUsrkPFax2Kw2vNTHRrQ
+RGAastmi+EYJsQAoktX2dPseTdrkeJBk240Bfj08ZUFg4uPuho9C45ND6QCg/6SO
+FMuan62QE+DwlUiMDo4ZcU0EAMDS8k6Dhb5m/0njO6w9OLTEyzohlsM9AP+4mfgB
+NOJYhrzfkFoElOcWSA/V3nmYn2VS0oIYDDtBnjXVWZidzTAWKsbT9/AepS3/P2tG
+KMhlXhas+uAiAbMpOglz8fdQ76ivQqyRdS99t4iy/cP2ZC3ShAqZQCacfWY5ZQ8Q
+kTILBADvp/eayw8fvtfWQXJ9EjBRbhO4THmP6z8J+4ypG6l0V/RBjDWZybrqibO9
+ejnOjQYJNCnfrfpzQ5l6dHyy86zLyg+bkFxeId4jp/IfDfJX90sGbuQahNYYwqTp
+SFiDMI3KN5ZhzhGnx+pKQh59pcux3HyKmcpPa4oB0CT828lWuLQfWW9hdiBTaGFw
+aXJhIDx5b2F2c0BhcGFjaGUub3JnPokATgQQEQIADgUCPy7+aAQLAwECAhkBAAoJ
+ECZhkcN8A31CGLkAoPRDGtLRwjkzS2F/OBPkRHKF9/atAKCIh3Fmcr2Cdn05P4qF
+kBe3QeWVt7kDDQQ/Lv5qEAwAzB13VyQ4SuLE8OiOE2eXTpITYfbb6yUOF/32mPfI
+fHmwch04dfv2wXPEgxEmK0Ngw+Po1gr9oSgmC66prrNlD6IAUwGgfNaroxIe+g8q
+zh90hE/K8xfzpEDp19J3tkItAjbBJstoXp18mAkKjX4t7eRdefXUkk+bGI78KqdL
+fDL2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0Op
+lK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPF
+RzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEH
+NmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4z
+ISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGf
+nHy9iUsiGSa6q6Jew1XpTDJvAAICC/4iJF383WNktP9/SxeGVIV74r7C7q5Cxr4a
+Liy7pEYs52DEft3JzTCLI5O4+NjOw+hEd3QiIytUJRW66V6zd50h4x9lBfK+eMYz
+GKNN7kd3aBmH/vXEsG9m9bK1ExwyWq4uyf76nRx1Ya9YthNWmxPUHQnSrOYNPU0/
+beA87ouZG4RL9tYqdu3NKJ4g/DYiaw+twvhSoCUkBEFHFfKLDlv8zyQvPTaPUSAM
+Ha5/G2Dj1D5RluMSCEMG1V8+YcYAFh63WEP7Afye0mR1LMJvmlba67ogh0ZSfR+I
+ju3lhJ9XOp/2W372F9ZbRJofgofVwHQV6INB5uX7KHAdXtPTss+l1nTmydLhsiPC
+5oh99ITPdOm8gRzrP10aFwCnwsqXvr+b7fX/CywpuCOQMIr4sbhbYTTClwDo6E0U
+TQ+Nb7PWE+8KuJuobTvMUqDQSQaQBnkpLcvRt3cPppANtkaADAeNf0RqKxxLlym4
+AltN8G8IMLtSJoH9xlQHTQA4tEUeKOeJAEYEGBECAAYFAj8u/moACgkQJmGRw3wD
+fUJh7ACdE7QuMkzSbxEzTXnbkS61AUPy06QAoI5b613vrWeqg5Gz9C7TzG+FEEoh
+=O17Z
+-----END PGP PUBLIC KEY BLOCK-----
+pub   1024D/2E114322 2005-06-11 [expires: 2010-06-10]
+      Key fingerprint = A1A2 B554 6D43 31B2 A41E  1C07 BE16 C95D 2E11 4322
+uid                  Curt Arnold <ca...@apache.org>
+sig 3        2E114322 2005-06-11  Curt Arnold <ca...@apache.org>
+sub   2048g/209ECE57 2005-06-11 [expires: 2010-06-10]
+sig          2E114322 2005-06-11  Curt Arnold <ca...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.1 (Darwin)
+
+mQGiBEKrSNQRBAC4J7udOBoC5+gVxBaPAbjXfnq12l5Pau1WD+UothePNGjI2hOp
++Rnzikk3ISgyrjiX3A8ScZYbu3iXvMpF4zknkGLdmerpf4Gz9xGeushwun+UFaFL
+MX5u7LWJo9wDKzbcJJit1j/qGEg/HRp5fnVYCh0/l4dLansL60NhxtYdxwCguu2e
+wZMZFroaiIXqnce7+cGDRq8D/2HgKGtEJHY3z8OtUqncWbW+RAQqdcT0Z+bMB8o6
+0UCHxUoJrFS1lA62qU3kcZ8ACPoh9xDW4X47EgNPELX81alymTI5FdqiDK7RIwzE
+JlOH/8JJgC6eSwiUXJ0cOJwpMonitcpMLouxuURuPSpfE5b1mQ1gFzN5MBL8xlZQ
+8IO6A/9qWwyWyQBoJud0RDIsVRosdoSBZtw9PHsURgsqfNsS2NXTWK4HjxExw1KO
+AXmRlALfrH8yAShy/AyiUrwlKHG2WPTe6Etygjlr4dIxqTiCOoi+qv+H8SXW4Qy3
+SnyozJ2RlKoYG0oDTbVMsPhOFdytHjConDLL9vS14j4kN9zWB7QgQ3VydCBBcm5v
+bGQgPGNhcm5vbGRAYXBhY2hlLm9yZz6IZAQTEQIAJAUCQqtI1AIbAwUJCWYBgAYL
+CQgHAwIDFQIDAxYCAQIeAQIXgAAKCRC+FsldLhFDIs5CAJ9roOB39ithHoCLaDJx
+l14efLwgNgCfcDBYutNX5W627kCeheDqhQbTqTi5Ag0EQqtJBRAIAN8maiGIO44S
+dc9Ep3CAm0aXDeR8IQ/F253WcMQtkFBjeHEDd6/+EFT52vswMI6ZJDVV/A7pe4VM
+XAdNutFmUG2gy9OJOu8gMuO3jTCLxUXyQYNF/RasOAQJgc7q1N5QgKtXVH2InQ21
+vHvlHM1fVe4rYDPr4JL2lZHe0P8kTzeQ7jI5pQnfYRJmS8I5AMQYFOiM48Pd7Sbs
+Wu/rym7ikcmKUe6ZE59hSioneVP31CDMNRxCAQJVS1mZxTozsAEoh+cvmRjOD1Es
+0iXvu6Sfe8+sLRL+7CNUZgixE1UFbdnNxuZGlG9qs0LGP7hDWijT1/Y4SHz4ovXx
+k0oocmFtiLcAAwcIAMbY7K99hLAFVaU2ukxCSp1TNPcD+IB3gtpRieKaZvBn/LGe
+CO+fNAogkw537lmpLk4nI+JiP/xWohyJ9lyEpW7yD4c9AHKNjqvEWD5Bhpnw4qKJ
+ohQSVQwEeJRsftY4D0jCP9xbgPiq5woBzHWNok3BVaHqLK0fd0/+KygnT+k6cR22
+Mus9RsEisXk9Oj5lvC0miDOWof4vk2Ll8/H3xt4CXAr13n5Yj2632HolOHrFUQXT
+gwc9v5CNIihOQMEiXFxHh743qbsUZktjxeYH7r8wSCV93/QQ4qELiWoUzndpkCRT
+lEKenucAv6f5qqZqG7pVW8S48T99HwzwqgFX5VOITwQYEQIADwUCQqtJBQIbDAUJ
+CWYBgAAKCRC+FsldLhFDIjnoAJ9ECOIrTH3adnVLOkHZnewyp2ssxwCgtLjlwZ7/
+4QtL3W5Id3nKxPFiI+c=
+=9ut1
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub   1024D/47C4113E 2004-06-24
+      Key fingerprint = 2503 F500 644F DECD C5DC  C38D B35E 96D7 47C4 113E
+uid                  Jacob Kjome <ho...@visi.com>
+sig 3        47C4113E 2005-06-24  Jacob Kjome <ho...@visi.com>
+uid                  Jacob Kjome <ho...@apache.org>
+sig 3        47C4113E 2005-06-24  Jacob Kjome <ho...@visi.com>
+uid                  Jacob Kjome <Ja...@hotpop.com>
+sig          47C4113E 2004-06-24  Jacob Kjome <ho...@visi.com>
+sig 3        47C4113E 2004-10-02  Jacob Kjome <ho...@visi.com>
+sub   4096g/4E44B60C 2004-06-24
+sig          47C4113E 2004-06-24  Jacob Kjome <ho...@visi.com>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.1 (MingW32)
+Comment: GnuPT 2.6.2.1 by EQUIPMENTE.DE
+
+mQGiBEDaU1cRBADahTOIBOcOb0gR9bH1CNUvkv4tyz+Dmeju1hhjOo0xz9JRyDal
+2lo7IoKH7OkS4emv+rDVEVtAs2xuA0POR7L4kf8hiEfHVcSFi20NewcosKBWzdQ/
+1LNJg/woWTWlUikcBpdeXhsDL1T0/bNg7cnG1kpOEEbsHNME3xlFiMiPMwCg/2Qh
+/iucIfZDx/1iITQIf3XtY5kEAIeLUviOdgm9+QBKAJgwTRlD0WMgU1IoZT5qoaMR
+4S5uFhUyYVAc7JPuWcnXQ2Q/cRrV+92AfT6Fve/3u0FeuRtUq+HBLcF0ffaIDcU/
+5C+k4BvgiLOSX1p7P3gI5gjkusxbGTmX8UsbybvKjpa1jmL/TXIKdEO4yJ7yjoDK
+UsbIA/9V+6h/WPS5t/CYrX4x6ofA+OxclXnEj6J8or3sjzAE8Wmp36XaoxqEDMQm
+/60/BdISvS3nJMBAGDCkXeyCOevpObKBjq4OwWcyjpAoI9ntbsEYrsssf1RjoF0q
+S1Hkc7YcKo6YJKYCxsszJIScR861yinMx1oRMx5ybFU+gryVGrQdSmFjb2IgS2pv
+bWUgPGhvanVAYXBhY2hlLm9yZz6IXgQTEQIAHgUCQrtvagIbAwYLCQgHAwIDFQID
+AxYCAQIeAQIXgAAKCRCzXpbXR8QRPpI0AKC2K3LpuC6hXMkPIXakmL2roMvLYQCf
+XF+lnGtFwJwZT06fxcl/f7uU9W+0JEphY29iIEtqb21lIDxKYWNvYi5Lam9tZUBo
+b3Rwb3AuY29tPohdBBARAgAdBQJA2lNXBwsJCAcDAgoCGQEFGwMAAAAFHgEAAAAA
+CgkQs16W10fEET5LNgCg90G2fCgqcwROhwHALim2UFiVZFsAoMIb8P8MUb2AARp1
+OSsXKPa96/ZtiFwEExECABwFAkFeAMICGwMECwcDAgMVAgMDFgIBAh4BAheAAAoJ
+ELNeltdHxBE+yWYAn3VlS8NWLzbRrmC2C70WyKMXypjTAKCYI800EZWcJ5J8lnYV
+J1/q7w1/ybQbSmFjb2IgS2pvbWUgPGhvanVAdmlzaS5jb20+iF4EExECAB4FAkK7
+cKsCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQs16W10fEET6LZQCfQ1s8jdzP
+MM40iGgzWF+Kh2yprFAAnj2fbuoVlWngPeP5W3WojcQFkIuuuQQNBEDaU1cQEAD5
+GKB+WgZhekOQldwFbIeG7GHszUUfDtjgo3nGydx6C6zkP+NGlLYwSlPXfAIWSIC1
+FeUpmamfB3TT/+OhxZYgTphluNgN7hBdq7YXHFHYUMoiV0MpvpXoVis4eFwL2/hM
+TdXjqkbM+84X6CqdFGHjhKlP0YOEqHm274+nQ0YIxswdd1ckOErixPDojhNnl06S
+E2H22+slDhf99pj3yHx5sHIdOHX79sFzxIMRJitDYMPj6NYK/aEoJguuqa6zZQ+i
+AFMBoHzWq6MSHvoPKs4fdIRPyvMX86RA6dfSd7ZCLQI2wSbLaF6dfJgJCo1+Le3k
+XXn11JJPmxiO/CqnS3wy9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadW
+oxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeS
+Wc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0
+iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF04
+0zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQ
+ClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6z3WFwACAhAA9Wuh1hV1QZIVoQDT
+1MLk9OkTIOS2xjc4saF+/NOLC/cZXC5ReCiuC/80MMPoUiK/V+oXbPsyG1eYZVOr
+6KyObm7bP30PU+0gOuHsYkGAZQXGq4cZneDkX38mHHVVAg0xsuvM+BHWAJ0FRE69
+OHjZ9ow8oH9dYik6FGRnOrtMsSMUVF2Npk7fM6gOOc8Tthqg4awcmm/nn/7xsIrM
+EzDZ3N3HA68iDxH+vA0PxHemECvF0bYP4lW8o9ZP36MFDJrsIcTdVlInIJxLCRex
+y/+NTdCeHPQNptYoZKoI+S1Ay9M7z3N5dj5qWZ0u/Vy8yCuIGyCozbYqEgxo/9nq
+TBe8TWXHu/qqJE5IFLl8ViacfP5nksSQUAdWRabai/Seguu1Se0JOsTe5hoPS3nk
+bY+YcuQsvfA/7Qu4MmzEN4SxwkYs+qlny6HSoiH9hnEdMlvSwY0a8bnKlBWGF73X
+60cuso6Rsd3rzqibYLuASemPDSBom2b2pi/vIBQcwLr+reBe39xD3WmZRlAvMlnh
+uS2kc1r/mwFgnvY4QEKYTX6GE91KSDuCHvq1LYbjPKkRr2LDegkoEO4f3oWuXZ43
+nddGNpRqFOVXxlEhbhluOgUougY9PyJgyaRP5hwHQfYsedgdyIEb1qtoKoyhNsXO
+uBj+I72TcaBoNc0xcGa9CNE84FWITAQYEQIADAUCQNpTVwUbDAAAAAAKCRCzXpbX
+R8QRPlzhAKDYkXs1ip1eaPnnfZXAf4CMCaUTSACgoT3g+W3v47o4LAL6J2+aXuxM
+HCA=
+=br+o
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/trunk/LICENSE.txt b/trunk/LICENSE.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/trunk/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/trunk/NOTICE.txt b/trunk/NOTICE.txt
new file mode 100644
index 0000000..8bb0be4
--- /dev/null
+++ b/trunk/NOTICE.txt
@@ -0,0 +1,7 @@
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
+
+This product includes source code based on Sun
+Microsystems' book titled "Java Nativer Interface:
+Programmer's Guide and Specification" and freely available
+to the public at http://java.sun.com/docs/books/jni.
diff --git a/trunk/build.properties.sample b/trunk/build.properties.sample
new file mode 100644
index 0000000..39e8cef
--- /dev/null
+++ b/trunk/build.properties.sample
@@ -0,0 +1,98 @@
+# The xml api interface and a xml parser are required to build the
+# JoranConfigurator. However, these are already available since Ant
+# needs them too.  Note also that these are required to run Chainsaw.
+# They are commented out by default but may be commented in for
+# customizations, e.g. when running Chainsaw from Ant version 1.4
+# or earlier.
+ 
+# xml.home=/java/jaxp-1.1 
+# xml-api.jar=${xml.home}/xml-apis.jar
+# xml-impl.jar=${xml.home}/xercesImpl.jar
+
+
+#
+#   by default assume that all necessary dependencies
+#      are relative to the user's home directory
+#
+lib.home.dir=${user.home}
+
+# JavaMail API OPTIONAL; required to build the SMTPAppender
+javamail.jar=${lib.home.dir}/javamail-1.3.2/mail.jar
+activation.jar=${lib.home.dir}/jaf-1.0.2/activation.jar
+
+# JMS OPTIONAL; required to build the JMSAppender.
+# in order to build the JMSAppender.
+# API jar can be downloaded from http://java.sun.com/products/jms/docs.html
+jms.jar=${lib.home.dir}/jms1.1/lib/jms.jar
+
+# Required to build the org.apache.log4j.jmx package.
+jmx.home.dir=${lib.home.dir}/jmx-1_2_1-bin
+jmx.jar=${jmx.home.dir}/lib/jmxri.jar
+jmx-extra.jar=${jmx.home.dir}/lib/jmxtools.jar
+
+
+# Servlet api
+servlet-api.jar=${lib.home.dir}/jakarta-tomcat-5.5.9/common/lib/servlet-api.jar
+
+# Velocity's Anakia task is used in the generation of the documentation
+# download from http://jakarta.apache.org
+velocity.jar=${lib.home.dir}/velocity-1.4/velocity-dep-1.4.jar
+# Velocity's Anakia task requires JDOM, 
+# but Velocity 1.4 is not compatible with JDOM 1.0, but beta 8 works okay
+# download for http://www.jdom.org/dist/binary/archive
+jdom.jar=${lib.home.dir}/jdom-b8/build/jdom.jar
+
+# Describes the relative or full path to the Jakarta ORO Reg Exp jar file
+# Required if you wish to use LogFilePatternReceiver or LikeRule (regexp)
+jakarta-oro.jar=${lib.home.dir}/jakarta-oro-2.0.8/jakarta-oro-2.0.8.jar
+
+
+# DBAppender/DBReceiver OPTIONAL: 
+#
+# The org.apache.log4j.db package makes use of the
+# javax.sql.DataSource interface which is included part of the JDBC
+# standard extensions. These extensions ship with JDK 1.4 and later
+# but not JDK 1.3 or 1.2.
+#
+# Download JDBC 2.0 Optional Package Binary from
+#
+#  http://java.sun.com/products/jdbc/download.html#spec
+#
+#jdbc-stdext.jar=${lib.home.dir}/jdbc2_0-stdext.jar
+
+# ---------------------------------------------------
+# JNDI API REQUIRED when building log4j with JDK 1.2)
+# ---------------------------------------------------
+#
+# The JNDI API is required to build ContextJNDISelector, which has
+# become a core log4j class. The JNDI API ships with JDK 1.3 and later,
+# you do not need to load it separately. For JDK 1.2, you can get the
+# JNDI API from
+#
+#     http://java.sun.com/products/jndi/downloads/index.html
+
+#jndi.jar=/java/lib/jndi.jar
+
+#
+#   Jalopy source code reformatter
+#
+#
+jalopy-ant.dir=${lib.home.dir}/jalopy-ant-0.6.2
+
+#
+#   Checkstyle coding convention checker
+#
+checkstyle.jar=${lib.home.dir}/checkstyle-4.0-beta2/checkstyle-all-4.0-beta2.jar
+
+
+#
+#   CLIRR binary compatibility checker
+#      http://clirr.sourceforge.net
+clirr-core.jar=${lib.home.dir}/clirr-0.6/clirr-core-0.6.jar
+#  bcel 5.1 will throw NullPointerExceptions
+bcel.jar=${lib.home.dir}/bcel-5.2rc1/bcel-5.2rc1.jar
+
+#
+#   JDIFF API change documentation generator
+#       http://jdiff.sourceforge.net
+jdiff.home.dir=${lib.home.dir}/jdiff
diff --git a/trunk/build.xml b/trunk/build.xml
new file mode 100644
index 0000000..649ce0b
--- /dev/null
+++ b/trunk/build.xml
@@ -0,0 +1,1067 @@
+<?xml version="1.0" encoding="utf-8" ?> 
+<!--
+  Copyright 2002, 2006 The Apache Software Foundation.
+  
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  
+-->
+<project name="log4j" default="usage" basedir="." >
+
+
+  <!-- The build.properties file defines the parth to local jar files -->
+  <property file="build.properties"/>
+
+  <property name="version" value="1.3alpha-8"/>
+
+  <property name="target" value="1.2"/>
+  <property name="source" value="1.3"/>
+
+  <!-- The base directory relative to which most targets are built -->
+  <property name="base" value="."/>
+
+  <!-- The directory where source files are stored. -->
+  <property name="java.source.dir" value="src/java/"/>
+
+  <!-- The directory where the package-list file is found, ./ or -->
+  <!-- build/ -->
+  <property name="packaging.dir" value="build"/>
+
+  <!-- distribution directory -->
+  <property name="dist.dir" value="dist"/>
+  
+  <!-- Deprecation warning? --> 
+  <property name="deprecation" value="on"/>
+	
+  <!-- Destination for compiled files -->
+  <property name="javac.dest" value="${dist.dir}/classes"/>
+
+  <!-- Source directory for the examples/ -->
+  <property name="examples.src" value="examples/src"/>
+
+  <!-- Destination for compiled files for examples/ -->
+  <property name="examples.javac.dest" value="examples/classes"/>
+
+  <!-- Destination for generated jar files -->
+  <property name="jar.dest" value="${dist.dir}/lib"/>
+  
+  <!-- The jar file that the jar task will generate -->
+  <property name="log4j.jar" value="log4j-${version}.jar"/>
+  <property name="log4j-optional.jar" value="log4j-optional-${version}.jar"/>
+  <property name="log4j-oro.jar" value="log4j-oro-${version}.jar"/>
+  <property name="log4j-xml.jar" value="log4j-xml-${version}.jar"/>
+  <property name="log4j-jms.jar" value="log4j-jms-${version}.jar"/>
+  <property name="log4j-smtp.jar" value="log4j-smtp-${version}.jar"/>
+  <property name="log4j-db.jar" value="log4j-db-${version}.jar"/>
+  <property name="log4j-nt.jar" value="log4j-nt-${version}.jar"/>
+  <property name="log4j-jmx.jar" value="log4j-jmx-${version}.jar"/>
+  <property name="log4j-all.jar" value="log4j-all-${version}.jar"/>
+
+
+	<!-- Destination for documentation files -->
+  <property name="docs.dest" value="./docs"/>
+  <!-- Source directory for xml docs -->
+  <property name="xdocs.src" value="./src/xdocs"/>
+
+  <!-- Javac with debug on/off. Log4j without debug on is hard to debug, so leave this settint on. -->
+  <property name="debug" value="on"/>
+
+  <!-- Destination for javadoc generated files -->
+  <property name="javadoc.dest" value="${dist.dir}/docs"/>
+  <property name="javadoc.api.dest" value="${dist.dir}/docs/api"/>
+
+  <!-- Icons source directory. -->
+  <property name="icons.source" value="icons"/>
+
+  <!-- The stem where most log4j source code is located. -->
+  <property name="stem" value="org/apache/log4j"/>
+
+  <!-- Some targets needs a more precise stem. -->
+  <property name="BSTEM" value="${java.source.dir}/${stem}"/>
+
+  <!-- Directory where release images go. -->
+  <property name="dist.images"  value="${dist.dir}/images"/>
+
+  <!-- Directory for temporary files. -->
+  <property name="dist.tmp" value="${dist.dir}/tmp"/>
+
+  <!-- Construct compile classpath -->
+  <path id="compile.classpath">
+    <pathelement location="${javac.dest}"/>
+    <pathelement location="${javamail.jar}"/>
+    <pathelement location="${activation.jar}"/>
+    <pathelement location="${xml-api.jar}"/>
+    <pathelement location="${xml-impl.jar}"/>
+    <pathelement location="${jms.jar}"/>
+    <pathelement location="${jmx.jar}"/>
+    <pathelement location="${jmx-extra.jar}"/>
+    <pathelement location="${servlet-api.jar}"/>
+    <pathelement location="${jdbc-stdext.jar}"/>
+    <pathelement location="${jndi.jar}"/>
+    <pathelement location="${jakarta-oro.jar}"/>
+  </path>
+
+  <!-- Construct classpath for building the html pages-->
+  <path id="site.classpath">
+    <pathelement location="${velocity.jar}"/>
+    <pathelement location="${jdom.jar}"/>
+  </path>
+
+
+  <!-- ================================================================= -->
+  <!-- Default target                                                    -->
+  <!-- ================================================================= -->
+
+  <target name="usage">
+    <echo>
+    These are the targets supported by this ANT build scpript:
+
+    build.core - compile core log4j classes. This target is dependent on JAXP, JNDI.
+    
+    build.jms - build classes dependent on the JMS API.
+    build.jmx - build classes dependent on the JMX API.
+    build.db - build classes dependent on JDBC API
+    build.nt - build classes specific to the Windows platform
+    build.smtp - build classes dependent on Java Mail API
+    build.xml - build classes in the org.apache.log4j.xml package	
+    build   - compile all project files
+    
+    log4j.jar - build the core log4j jar
+    log4j-'dep'.jar - where 'dep' is one of "optional", "jms", "jmx", "nt", "db", "smtp" and "xml".
+    jar     - build all jar files
+    	
+
+    javadoc - build project javadoc files
+
+    dist    - will create a complete distribution in dist
+    
+            
+    </echo>
+  </target>
+	
+  <target name="jaxpCheck" unless="jaxp-present">
+    <available classname="javax.xml.parsers.DocumentBuilderFactory"
+                          property="jaxp-present"/>
+  	 <fail unless="jaxp-present">
+
+  	 	  Could not find the JAXP API.
+
+  	 	  Please set the jaxp-api.jar property in the build.properties file.
+  	 </fail>
+
+  </target>
+	
+  <target name="jndiCheck" unless="jndi-present">
+    <available classname="javax.naming.Context" property="jndi-present">
+      <classpath refid="compile.classpath"/>
+    </available>
+    <fail unless="jndi-present">
+
+      The JNDI API is required to build ContextJNDISelector, which has
+      become a core log4j class. The JNDI API ships with JDK 1.3 and
+      later. For JDK 1.2, you can get the JNDI API from
+
+        http://java.sun.com/products/jndi/downloads/index.html
+
+    </fail>
+  </target>
+  <target name="jndi" depends="jndiCheck" if="jndi-present">
+    <echo message="JNDI is present."/>
+  </target>
+
+  <target name="oroCheck" >
+    <available classname="org.apache.oro.text.perl.Perl5Util" property="oro-present">
+      <classpath refid="compile.classpath"/>
+    </available>
+  	
+  	<fail unless="oro-present">
+  	  		
+  	        Missing org.apache.oro.* classes.
+  	  		
+  	        Please make sure to that the "jakarta-oro.jar" property in build.properties 
+  	        file is set correctly.
+  	  		
+  	  	</fail>
+    	
+  </target>
+  
+
+  <target name="jmxCheck">
+    <condition property="jmx-present" value="true">
+        <and>
+            <available classname="javax.management.MBeanInfo"
+                       classpath="${jmx.jar}"/>
+            <available classname="com.sun.jdmk.comm.HtmlAdaptorServer">
+                <classpath>
+                    <pathelement location="${jmx.jar}"/>
+                    <pathelement location="${jmx-extra.jar}"/>
+                </classpath>
+            </available>
+        </and>
+    </condition>
+  	<fail unless="jmx-present">
+  		
+        Missing javax.management.* amd com.sun.jdmk.comm.HtmlAdaptorServer classes.
+  		
+        Please make sure to that the "jmx.jar" and "jmx-extra.jar" properties in build.properties 
+        file are set correctly.
+  	</fail>
+  </target>
+  
+
+  <target name="jmsCheck" depends="jndiCheck">
+    <available classname="javax.jms.Message" property="jms-present">
+     <classpath refid="compile.classpath"/>
+    </available>
+  	<fail unless="jms-present">
+  		
+        Missing javax.jms.* classes.
+  		
+        Please make sure to that the "jms.jar" property in build.properties 
+        file is set correctly.
+  		
+  	</fail>
+  </target>
+
+  <target name="javamailCheck">
+    <available classname="javax.mail.Message" property="javamail-present">
+      <classpath refid="compile.classpath"/>
+    </available>
+  	<fail unless="javamail-present">
+  		
+        Missing java.mail.* classes.
+  		
+        Please make sure that the "javamail.jar" and "activation.jar"
+        properties in the build.properties file are set correctly.
+  		
+  	</fail>
+
+  </target>
+
+  <target name="servletAPICheck">
+    <available classname="javax.servlet.ServletContext" property="servletAPI-present">
+      <classpath refid="compile.classpath"/>
+    </available>
+  	<fail unless="servletAPI-present">
+       Missing javax.servlet.* classes.
+  	  		
+       Please make sure that the "servlet-api.jar" property in build.properties 
+       file is set correctly.
+  	  		
+  	</fail>
+  </target>
+  
+  
+
+
+
+  <target name="jdbcExtensionCheck">
+    <available classname="javax.sql.DataSource" property="jdbcExtension-present">
+     <classpath refid="compile.classpath"/>
+    </available>
+  	<fail unless="jdbcExtension-present">
+  	    Missing javax.sql.* classes.
+  	  	  		
+  	    Please make sure to that the "jdbc-stdext.jar" property in build.properties 
+  	    file is set correctly.
+  	  	  		
+  	</fail>
+  </target>
+
+
+  <target name="init">
+    <tstamp />
+  </target>
+
+  <target name="build" description="Compile all log4j components."
+	      depends="init, build.core, build.oro, build.jms, build.smtp, build.db, build.nt,
+  	               build.jmx, build.examples"/>
+
+  <target name="requiredepsCheck" 
+  	depends="jndiCheck,jmsCheck,oroCheck,javamailCheck,servletAPICheck,jdbcExtensionCheck,jaxpCheck,jmxCheck"
+  	description="Compile all log4j components - fail if dependencies do not exist"
+  	>
+    <condition property="alldeps.exist">
+      <and>
+        <isset property="jndi-present"/>
+        <isset property="oro-present"/>
+        <isset property="jms-present"/>
+        <isset property="javamail-present"/>
+        <isset property="servletAPI-present"/>         	
+        <isset property="jdbcExtension-present"/>       	
+        <isset property="jaxp-present"/>
+        <isset property="jmx-present"/>
+      </and>
+    </condition>
+    <fail unless="alldeps.exist">
+      Some jar files required to perform a full compile of log4j are not 
+       available on the classpath.  Update build.properties as needed.
+    </fail>
+  </target>
+
+  <target name="build.core" depends="init, jndiCheck, jaxpCheck">
+	<mkdir dir="${javac.dest}/"/>
+    <javac destdir="${javac.dest}"
+           includes="${stem}/**/*.java"
+           excludes="**/UnitTest*.java,
+                     **/StressCategory.java,
+                     **/doc-files/*,
+                     ${stem}/db/**,
+                     ${stem}/test/serialization/**,
+                     ${stem}/net/SMTPAppender.java,
+                     ${stem}/net/JMS*.java,
+    	             ${stem}/varia/LogFilePatternReceiver*.java,
+    	             ${stem}/rule/LikeRule.java,
+                     ${stem}/or/jms/*.java,
+                     ${stem}/selector/servlet/*.java,
+                     ${stem}/lbel/**/*.java,
+					 ${stem}/nt/**/*.java.
+					 ${stem}/jmx/**.java"
+    	   deprecation="${deprecation}"
+    	   debug="${debug}"
+    	   target="${target}"
+    	   source="${source}"
+    	>
+    	<src path="${java.source.dir}"/>
+      <classpath refid="compile.classpath"/>
+    </javac>
+  </target>
+
+
+
+ <!-- ================================================= -->
+ <!--                Compile examples                   -->
+ <!-- ================================================= -->
+
+  <target name="build.examples" depends="build.core">
+    <mkdir dir="${examples.javac.dest}" />
+    <javac srcdir="${examples.src}"
+           destdir="${examples.javac.dest}"
+           includes="**/*.java"
+           excludes="**/jmx/*.java"
+           deprecation="${deprecation}"
+           debug="${debug}"
+           target="${target}"
+    	   source="${source}"
+     >
+      <classpath refid="compile.classpath"/>
+    </javac>
+
+    <rmic base="${examples.javac.dest}" classname="factor.NumberCruncherServer" />
+  </target>
+
+ <target name="build.xml" depends="init, jaxpCheck">
+	<mkdir dir="${javac.dest}/"/>
+    <javac srcdir="${java.source.dir}"
+           destdir="${javac.dest}"
+           includes="${stem}/xml/**/*.java"
+           excludes="${stem}/xml/DOMConfigurator.java,
+    	             ${stem}/xml/examples/doc-files/**.java"
+           deprecation="${deprecation}"
+           debug="${debug}"
+           target="${target}"
+    	   source="${source}"
+    >
+      <classpath refid="compile.classpath"/>
+    </javac>
+    <copy file="${BSTEM}/xml/log4j.dtd"
+      tofile="${javac.dest}/${stem}/xml/log4j.dtd" />
+    <copy file="${BSTEM}/xml/logger.dtd"
+    tofile="${javac.dest}/${stem}/xml/logger.dtd" />
+  </target>
+	
+  <target name="log4j-xml.jar" depends="init, jaxpCheck, build.xml">
+        <mkdir dir="${jar.dest}/"/>
+	    <jar jarfile="${jar.dest}/${log4j-xml.jar}" basedir="${javac.dest}"
+	         includes="${stem}/xml/*.class,
+	    	           ${stem}/xml/*.dtd"
+	    	  excludes="${stem}/xml/DOMConfigurator.class,
+	    	            ${stem}/xml/XMLLayout.class"
+	    >
+	     <manifest>
+	        <section name="org/apache/log4j/">
+	          <attribute name="Implementation-Title" value="log4j-xml"/>
+	          <attribute name="Implementation-Version" value="${version}"/>
+	          <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+	        </section>
+	      </manifest>
+	  	</jar>
+	  </target>
+	
+
+  <target name="build.smtp" depends="init, javamailCheck">
+	<mkdir dir="${javac.dest}/"/>
+    <javac srcdir="${java.source.dir}"
+           destdir="${javac.dest}"
+    	   debug="${debug}"
+           deprecation="${deprecation}"
+           includes="${stem}/net/SMTPAppender.java"
+           target="${target}"
+    	   source="${source}"
+    >
+      <classpath refid="compile.classpath"/>
+    </javac>
+  </target>
+
+  <target name="log4j-smtp.jar" depends="init, build.smtp"
+	          if="javamail-present">
+    <mkdir dir="${jar.dest}/"/>
+    <jar jarfile="${jar.dest}/${log4j-smtp.jar}" basedir="${javac.dest}"
+           includes="${stem}/spi/TriggeringEventEvaluator.class,
+    	             ${stem}/net/SMTPAppender.class,
+    	             ${stem}/net/DefaultEvaluator.class"
+    >
+     <manifest>
+        <section name="org/apache/log4j/">
+          <attribute name="Implementation-Title" value="log4j-smtp"/>
+          <attribute name="Implementation-Version" value="${version}"/>
+          <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+        </section>
+      </manifest>
+  	</jar>
+  </target>
+
+  <!-- Jakarta-ORO dependencies -->	 
+	
+  <target name="build.oro" depends="init, oroCheck">
+	<mkdir dir="${javac.dest}/"/>
+    <javac srcdir="${java.source.dir}"
+           destdir="${javac.dest}"
+           deprecation="${deprecation}"
+           includes="${stem}/varia/LogFilePatternReceiver*.java,
+                     ${stem}/rule/LikeRule.java,
+                     ${stem}/lbel/**/*.java"
+    	   debug="${debug}"
+    	   target="${target}"
+    	   source="${source}"
+    >
+      <classpath refid="compile.classpath"/>
+    </javac>
+  </target>
+	
+  <target name="log4j-oro.jar" depends="init, oroCheck, build.oro">
+    <mkdir dir="${jar.dest}/"/>
+    <jar jarfile="${jar.dest}/${log4j-oro.jar}" basedir="${javac.dest}"
+	     includes="${stem}/varia/LogFilePatternReceiver*.class,
+                  ${stem}/rule/LikeRule.class,
+                  ${stem}/lbel/**/*.class"
+	 	>
+        <manifest>
+          <section name="org/apache/log4j/">
+            <attribute name="Implementation-Title" value="log4j-oro"/>
+            <attribute name="Implementation-Version" value="${version}"/>
+            <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+          </section>
+        </manifest>
+
+  	</jar>
+  </target>
+		
+  <!-- JMS API dependencies -->	 
+	
+  <target name="build.jms" depends="init, jmsCheck, jndi">
+	<mkdir dir="${javac.dest}/"/>
+    <javac srcdir="${java.source.dir}"
+           debug="${debug}"
+    	   deprecation="${deprecation}"
+           destdir="${javac.dest}"
+    	   includes="${stem}/net/JMS*.java, ${stem}/or/jms/*.java"
+    	   target="${target}"
+    	   source="${source}"
+    >
+      <classpath refid="compile.classpath"/>
+    </javac>
+  </target>
+	
+  <target name="log4j-jms.jar" depends="init, build.jms"
+		          if="jms-present">
+    <mkdir dir="${jar.dest}/"/>
+    <jar jarfile="${jar.dest}/${log4j-jms.jar}" basedir="${javac.dest}"
+       includes="${stem}/net/JMSAppender.class,
+                 ${stem}/net/JMSSink.class,
+                 ${stem}/net/JMSReceiver.class,
+                 ${stem}/or/jms/*.class"
+    >
+    <manifest>
+      <section name="org/apache/log4j/">
+        <attribute name="Implementation-Title" value="log4j-jms"/>
+        <attribute name="Implementation-Version" value="${version}"/>
+        <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+      </section>
+    </manifest>
+    </jar>
+  </target>
+
+
+  <!-- JMX API dependencies -->	 
+	
+  <target name="build.jmx" depends="init, jmxCheck">
+	<mkdir dir="${javac.dest}/"/>
+    <javac srcdir="${java.source.dir}"
+           debug="${debug}"
+    	   deprecation="${deprecation}"
+           destdir="${javac.dest}"
+    	   includes="${stem}/jmx/*.java"
+    	   target="${target}"
+    	   source="${source}"
+    >
+      <classpath refid="compile.classpath"/>
+    </javac>
+  </target>
+	
+  <target name="log4j-jmx.jar" depends="build.jmx"
+		          if="jmx-present">
+    <mkdir dir="${jar.dest}/"/>
+    <jar jarfile="${jar.dest}/${log4j-jmx.jar}" basedir="${javac.dest}"
+       includes="${stem}/jmx/*.class"
+    >
+    <manifest>
+      <section name="org/apache/log4j/">
+        <attribute name="Implementation-Title" value="log4j-jmx"/>
+        <attribute name="Implementation-Version" value="${version}"/>
+        <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+      </section>
+    </manifest>
+    </jar>
+  </target>
+
+  <target name="build.servletAPI" depends="init, servletAPICheck">
+	<mkdir dir="${javac.dest}/"/>
+    <javac srcdir="${java.source.dir}"
+           destdir="${javac.dest}"
+           debug="${debug}"
+           deprecation="${deprecation}"
+           includes="${stem}/selector/servlet/*.java"
+           target="${target}"
+    	   source="${source}">
+      <classpath refid="compile.classpath"/>
+    </javac>
+  </target>
+
+  <target name="build.db" depends="init, jdbcExtensionCheck">
+	<mkdir dir="${javac.dest}/"/>
+    <javac srcdir="${java.source.dir}"
+           destdir="${javac.dest}"
+           deprecation="${deprecation}"
+           debug="${debug}"
+           includes="${stem}/db/**.java ${stem}/jdbc/**.java"
+           target="${target}"
+    	   source="${source}">
+      <classpath refid="compile.classpath"/>
+    </javac>
+  </target>
+	
+  <target name="log4j-db.jar" depends="init, jdbcExtensionCheck, build.db">
+    <mkdir dir="${jar.dest}/"/>
+    <jar jarfile="${jar.dest}/${log4j-db.jar}" basedir="${javac.dest}"
+	     includes="${stem}/db/**/*.class ${stem}/jdbc/**/*.class"
+  	>
+      <manifest>
+        <section name="org/apache/log4j/">
+          <attribute name="Implementation-Title" value="log4j-db"/>
+          <attribute name="Implementation-Version" value="${version}"/>
+          <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+        </section>
+      </manifest>
+    </jar>	
+  </target>
+
+	<target name="build.nt" depends="init">
+		<mkdir dir="${javac.dest}/"/>
+		<javac srcdir="${java.source.dir}"
+			   destdir="${javac.dest}"
+			   deprecation="${deprecation}"
+			   debug="${debug}"
+			   includes="${stem}/nt/**.java"
+			   target="${target}"
+			   source="${source}">
+			<classpath refid="compile.classpath"/>
+		</javac>
+	</target>
+
+    <target name="log4j-nt.jar" depends="build.nt">
+        <mkdir dir="${jar.dest}/"/>
+        <jar jarfile="${jar.dest}/${log4j-nt.jar}" basedir="${javac.dest}"
+			 includes="${stem}/nt/**/*.class">
+            <manifest>
+                <section name="org/apache/log4j/">
+                    <attribute name="Implementation-Title" value="log4j-nt"/>
+                    <attribute name="Implementation-Version" value="${version}"/>
+                    <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+                </section>
+            </manifest>
+        </jar>
+    </target>
+
+    <!--
+        Regenerates resource files from EventLogCategories.mc.  Avoids
+        need for Microsoft Platform SDK unless you are modifying EventLogCategories.mc
+    -->
+    <target name="update.nt.msg" description="Update EventLogCategories.rc from .mc">
+        <property name="msg.out.dir" location="${java.source.dir}org/apache/log4j/nt"/>
+        <exec executable="mc">
+            <arg value="-h"/>
+            <arg file="${msg.out.dir}"/>
+            <arg value="-r"/>
+            <arg file="${msg.out.dir}"/>
+            <arg file="${java.source.dir}org/apache/log4j/nt/EventLogCategories.mc"/>
+        </exec>
+    </target>
+    
+    <target name="build.nt.dll" depends="log4j.jar,log4j-nt.jar" description="Build NTEventLogAppender.dll">
+        <!--  requires MinGW on path.  If cygwin is on path, MinGW must be before it -->
+        <exec executable="windres" dir="${java.source.dir}/org/apache/log4j/nt/">
+            <arg value="-o"/>
+            <arg file="${javac.dest}/EventLogCategories.o"/>
+            <arg value="--include-dir=${javac.dest}"/>
+            <arg file="${java.source.dir}/org/apache/log4j/nt/EventLogCategories.rc"/>
+        </exec>
+
+        <exec executable="windres">
+            <arg value="-o"/>
+            <arg file="${javac.dest}/NTEventLogAppender.o"/>
+            <arg file="${java.source.dir}org/apache/log4j/nt/NTEventLogAppender.rc"/>
+        </exec>
+
+        <javah class="org.apache.log4j.nt.NTEventLogAppender,org.apache.log4j.Priority"
+			   destdir="${javac.dest}"
+			   classpath="${jar.dest}/${log4j.jar};${jar.dest}/${log4j-nt.jar}"/>
+
+
+		<property name="jni.include.dir" location="${java.home}\..\include"/>
+		<exec executable="gcc">
+			<arg value="-Wall"/>
+			<arg value="-D_JNI_IMPLEMENTATION_"/>
+			<arg value="-Wl,--kill-at"/>
+			<arg value="-I${jni.include.dir}"/>
+			<arg value="-I${jni.include.dir}\win32"/>
+			<arg value="-I${javac.dest}"/>
+			<arg value="-shared"/>
+			<arg file="${java.source.dir}org/apache/log4j/nt/nteventlog.cpp"/>
+			<arg file="${javac.dest}/NTEventLogAppender.o"/>
+			<arg file="${javac.dest}/EventLogCategories.o"/>
+			<arg value="-o"/>
+			<arg file="${jar.dest}/NTEventLogAppender.dll"/>
+		</exec>
+
+	</target>
+
+
+
+	<target name="log4j-optional.jar" depends="init, build.core">
+    <mkdir dir="${jar.dest}/"/>
+    <jar jarfile="${jar.dest}/${log4j-optional.jar}" basedir="${javac.dest}"
+	     includes="${stem}/net/Multicast*.class,
+                   ${stem}/net/UDP*.class,
+	               ${stem}/net/SocketHub*.class,
+	               ${stem}/net/Telnet*.class"
+	>
+	  <manifest>
+	    <section name="org/apache/log4j/">
+	      <attribute name="Implementation-Title" value="log4j-optional"/>
+	      <attribute name="Implementation-Version" value="${version}"/>
+	      <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+	    </section>
+	  </manifest>
+	</jar>	
+  </target>
+	
+  <!-- ================================================================= -->
+  <!-- Remove all generated (compiled) class files.                      -->
+  <!-- ================================================================= -->
+  <target name="clean" description="Delete all compiled or generated files.">
+    <delete dir="${dist.dir}/" />
+    <!--
+    <delete>
+  	 <fileset dir="${javac.dest}/" includes="**/*"/>
+   	 <fileset dir="${examples.javac.dest}/" includes="**/*"/>
+     <fileset dir="." includes="log4j*.jar"/>
+    </delete>
+    -->
+  </target>
+
+  <!-- ================================================================= -->
+  <!-- Actual work is done in the dependencies.                         -->
+  <!-- ================================================================= -->
+  <target name="jar" depends="log4j.jar, log4j-optional.jar, 
+  	                          log4j-jms.jar,  log4j-smtp.jar, 
+  	                          log4j-db.jar, log4j-oro.jar, log4j-xml.jar, 
+                              log4j-nt.jar, log4j-jmx.jar, log4j-all.jar">
+  </target>
+
+  <!-- ================================================================= -->
+  <!-- Create log4j.jar, excluding tests and other odds and ends.        -->
+  <!-- ================================================================= -->
+  
+  
+  <target name="log4j.jar" depends="build.core, build.servletAPI">
+    
+    <delete file="${log4j.jar}" verbose="true"/>
+    <mkdir dir="${jar.dest}/"/>
+    
+    <jar jarfile="${jar.dest}/${log4j.jar}" basedir="${javac.dest}"
+         includes="${stem}/*.class, 
+                ${stem}/joran/**/*.class,
+                ${stem}/config/*.class,
+                ${stem}/helpers/*.class,
+                ${stem}/spi/**/*.class,
+                ${stem}/net/*.class,
+                ${stem}/html/**/*.class,
+                ${stem}/filter/*.class,    	
+                ${stem}/rule/*.class,    	    	
+                ${stem}/rolling/**/*.class,
+                ${stem}/xml/*.class,
+    	        ${stem}/scheduler/*.class,        
+    	        ${stem}/selector/*.class,
+                ${stem}/selector/servlet/*.class,
+                ${stem}/pattern/*.class,
+                ${stem}/or/*.class,
+                ${stem}/or/sax/*.class,
+    	        ${stem}/varia/*.class,
+    	        ${stem}/plugins/*.class,
+                ${stem}/config/*.class"
+      excludes="**/UnitTest**, 
+    	        ${stem}/xml/Log4jEntityResolver.class,
+    	        ${stem}/xml/UtilLoggingEntityResolver.class,
+    	        ${stem}/xml/SAXErrorHandler.class,
+                ${stem}/xml/UtilLoggingXMLDecoder.class,
+                ${stem}/xml/XMLDecoder.class,
+    	        ${stem}/net/SMTPAppender.class,
+    	        ${stem}/net/DefaultEvaluator.class,
+    	        ${stem}/spi/TriggeringEventEvaluator.class,
+    	        ${stem}/net/JMSAppender.class,
+    		    ${stem}/net/JMSSink.class,
+    		    ${stem}/net/JMSReceiver.class,
+    	        ${stem}/**/*BeanInfo.class,
+                ${stem}/varia/LogFilePatternReceiver*.class,
+	            ${stem}/rule/LikeRule.class,
+    	        ${stem}/net/Multicast*.class,
+                ${stem}/net/UDP*.class,
+    	        ${stem}/net/SocketHub*.class,
+    	        ${stem}/net/Telnet*.class,
+    	        ${stem}/pattern/StackPatternConverter.class,
+    	        ${stem}/DUMMY.java,
+				${stem}/nt/*.class"
+    	>
+      <manifest>
+        <attribute name="Manifest-version" value="1.0"/>
+        <section name="org/apache/log4j/">
+          <attribute name="Implementation-Title" value="log4j"/>
+          <attribute name="Implementation-Version" value="${version}"/>
+          <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+        </section>
+      </manifest>
+    </jar>
+
+  </target>
+
+  <target name="log4j-all.jar" depends="build">
+    
+    <delete file="${log4j-all.jar}" verbose="true"/>
+    <mkdir dir="${jar.dest}/"/>
+    
+    <jar jarfile="${jar.dest}/${log4j-all.jar}" basedir="${javac.dest}"
+         includes="${stem}/**/*.class" 
+         excludes="**/UnitTest**,
+    	        ${stem}/xml/test/*.class">
+      <manifest>
+        <attribute name="Manifest-version" value="1.0"/>
+        <section name="org/apache/log4j/">
+          <attribute name="Implementation-Title" value="log4j with all features"/>
+          <attribute name="Implementation-Version" value="${version}"/>
+          <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+        </section>
+      </manifest>
+    </jar>
+
+  </target>
+  
+  
+  <!-- ================================================================= -->
+  <!-- This target reformats the source with Jalopy.                      -->
+  <!-- ================================================================= -->
+
+  <target name="jalopy" depends="init" description="Reformat source code using Jalopy">
+        <fail unless="jalopy.files">
+Specify files to reformat with -Djalopy.files=PATTERN.
+</fail>
+		<taskdef name="jalopy"
+         	classname="de.hunsicker.jalopy.plugin.ant.AntPlugin">
+  		    <classpath>
+    	        <fileset dir="${jalopy-ant.dir}/lib">
+                    <include name="*.jar" />
+                </fileset>
+            </classpath>
+        </taskdef>
+        <jalopy backup="no" 
+             convention="src/log4j-coding-convention.xml"
+             classpathref="compile.classpath">
+            <fileset dir="${java.source.dir}" includes="${jalopy.files}"/>
+        </jalopy>
+          
+  </target>
+
+  <!-- ================================================================= -->
+  <!-- This target reformats the source with Jalopy.                      -->
+  <!-- ================================================================= -->
+
+  <target name="checkstyle" depends="init" description="Check source code using checkstyle">
+        <property name="checkstyle.files" value="**/*.java"/>
+        <taskdef resource="checkstyletask.properties"
+         classpath="${checkstyle.jar}"/>
+        <checkstyle config="src/sun_checks.xml">
+            <fileset dir="${java.source.dir}" includes="${checkstyle.files}"/>
+        </checkstyle>          
+  </target>
+  
+  <!-- ================================================================= -->
+  <!-- This target builds the javadoc files.                             -->
+  <!-- ================================================================= -->
+  <target name="javadoc" depends="init">
+    
+    <mkdir dir="${javadoc.dest}" />
+    <mkdir dir="${javadoc.api.dest}" />
+    <copy file="docs/overview.html" todir="${javadoc.dest}"/>
+    <javadoc
+             destdir="${javadoc.api.dest}"
+             packagenames="org.apache.log4j,
+                 org.apache.log4j.db,
+                 org.apache.log4j.db.dialect,
+                 org.apache.log4j.plugins,
+                 org.apache.log4j.config,
+                 org.apache.log4j.helpers,
+                 org.apache.log4j.net,
+                 org.apache.log4j.nt,
+                 org.apache.log4j.or,
+                 org.apache.log4j.or.sax,
+                 org.apache.log4j.or.jms,
+                 org.apache.log4j.jmx,
+                 org.apache.log4j.pattern,
+                 org.apache.log4j.rolling,
+                 org.apache.log4j.rolling.helper,
+                 org.apache.log4j.selector,
+                 org.apache.log4j.spi,
+                 org.apache.log4j.filter,
+                 org.apache.log4j.varia,
+                 org.apache.log4j.rule,
+                 org.apache.log4j.xml,
+                 org.apache.log4j.xml.examples,
+                 org.apache.joran,
+                 org.apache.joran.action,
+                 org.apache.log4j.joran,
+                 org.apache.log4j.joran.action"
+             version="true"
+             protected="true"
+             author="true"
+             use="true"
+             overview="${javadoc.dest}/overview.html"
+             doctitle="log4j version ${version}&lt;br&gt;API Specification"
+             windowtitle="Log4j Version ${version}"
+             header="&lt;b&gt;Log4j ${version}&lt;/b&gt;"
+             bottom='Copyright &#169; 2000-2006 Apache Software Foundation. &lt;br /&gt;
+Licensed under the &lt;a href="http://www.apache.org/licenses/LICENSE-2.0"&gt;Apache License, Version 2.0&lt;/a&gt;.'>
+      <sourcepath>
+         <pathelement path="${java.source.dir}"/>
+      </sourcepath>
+      
+      <link href="http://java.sun.com/j2se/1.3/docs/api/"/>
+      <link href="http://java.sun.com/j2ee/sdk_1.3/techdocs/api/"/>
+      <classpath refid="compile.classpath"/>
+      <classpath path="${regexp.oro.jar}"/>
+    </javadoc>
+
+    <!-- Extra files referenced by JavaDocs -->
+    <copy file="${java.source.dir}/org/apache/log4j/xml/log4j.dtd"
+          tofile="${javadoc.api.dest}/org/apache/log4j/xml/log4j.dtd" />
+    <copy todir="${javadoc.api.dest}/org/apache/log4j/xml/examples">
+      <fileset dir="${java.source.dir}/org/apache/log4j/xml/examples">
+        <include name="sample*.xml" />
+        <include name="XMLSample.java" />
+      </fileset>
+    </copy>
+  </target>
+  
+  
+  <!-- ================================================================= -->
+  <!-- Compare the current API with a previous release                   -->
+  <!-- ================================================================= -->
+  <target name="jdiff" depends="init" description="Generate comparison to reference API">
+       <property name="reference-api.version" value="1.2.11"/>
+       <property name="reference-api.dir" location="${user.home}/logging-log4j-${reference-api.version}"/>
+       <property name="reference-api.source.dir" location="${user.home}/logging-log4j-${reference-api.version}/src/java"/>
+
+       <!-- Must be set to the root of where JDiff is installed. -->
+       <property name="JDIFF_HOME" value="${jdiff.home.dir}"/>
+       <!-- Just one simple way to tell Ant about the JDiff task -->
+       <taskdef name="jdiff" classname="jdiff.JDiffAntTask" 
+           classpath="${JDIFF_HOME}/lib/antjdiff.jar"/>    
+           
+       <jdiff verbose="on" destdir="build/jdiff">
+            <old name="Version ${reference-api.version}">
+              <dirset dir="${reference-api.source.dir}" includes="org/**"/>
+            </old>
+            <new name="Version ${version}">
+              <dirset dir="${java.source.dir}" includes="org/**"/>
+            </new>
+       </jdiff>
+  </target>  
+
+	
+	 
+	  <!-- ================================================================= -->
+	  <!-- Compare the current API with a previous release                   -->
+	  <!-- ================================================================= -->
+	  <target name="clirr" depends="jar" description="Check binary compatibility with arbitrary release">
+	  	   <fail unless="clirr-core.jar">-Dclirr-core.jar=PATH must be specified.</fail>
+	  	   <fail unless="bcel.jar">-Dbcel.jar=PATH must be specified.</fail>
+	  	   <fail unless="reference.jar">-Dreference.jar=PATH must be specified.</fail>
+	       <taskdef resource="clirrtask.properties" 
+	           classpath="${clirr-core.jar};${bcel.jar}"/>
+	       <delete dir="build/clirr"/>
+	       <mkdir dir="build/clirr/orig"/>
+	       <mkdir dir="build/clirr/new"/>
+	       <copy todir="build/clirr/orig">	       
+	       	    <fileset file="${jms.jar}"/>
+	       	    <fileset file="${jmx.jar}"/>
+	       </copy>
+	       <copy todir="build/clirr/new">
+	       	    <fileset dir="build/clirr/orig"/>
+	       	    <fileset dir="${jar.dest}">
+	  	            <include name="${log4j.jar}"/>
+	  	            <include name="${log4j-db.jar}"/>
+	  	            <include name="${log4j-jms.jar}"/>
+	  	            <include name="${log4j-jmx.jar}"/>
+	  	            <include name="${log4j-nt.jar}"/>
+	  	            <include name="${log4j-optional.jar}"/>
+	  	            <include name="${log4j-oro.jar}"/>
+	  	            <include name="${log4j-smtp.jar}"/>
+	  	            <include name="${log4j-xml.jar}"/>
+	  	        </fileset>	       	    	
+	       </copy>
+	       <copy todir="build/clirr/orig">
+	       		<fileset file="${reference.jar}"/>
+	       </copy>
+	  	   <clirr failOnBinError="no" failOnSrcError="no">
+	  	        <origfiles dir="build/clirr/orig" includes="*.jar"/>
+	  	        <newfiles dir="build/clirr/new" includes="*.jar"/>
+	  	  	    <formatter type="xml" outfile="${docs.dest}/compatibility.xml"/>
+	  	  </clirr>
+	  	  <xslt in="${docs.dest}/compatibility.xml"
+	  	        out="${docs.dest}/compatibility.html"
+	  	        style="${basedir}/src/xdocs/stylesheets/compatibility.xslt"/>
+	  </target>  
+	
+  <!-- ============================================== -->
+  <!-- Build the site files using Anakia              -->
+  <!-- ============================================== -->
+  <target name="prepareSite">
+    <available classname="org.apache.velocity.anakia.AnakiaTask"
+               property="AnakiaTask.present">
+      <classpath refid="site.classpath"/>
+    </available>
+  </target>
+  
+  <target name="checkSite" depends="prepareSite" unless="AnakiaTask.present">
+    <echo>
+      AnakiaTask is not present! Please check to make sure that
+      the velocity.jar property is specified and contains the correct path. 
+    </echo>
+  </target>
+
+  <target name="site" depends="checkSite" if="AnakiaTask.present">
+    <taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask">
+      <classpath refid="site.classpath"/>
+    </taskdef>
+    
+    <mkdir dir="${docs.dest}/css"/>  
+    <copy file="docs/css/site.css" tofile="${docs.dest}/css/site.css"/>
+    
+    <anakia basedir="${xdocs.src}" destdir="${docs.dest}/"
+            extension=".html"
+            style="site.vsl"
+            projectFile="stylesheets/project.xml"
+            excludes="**/stylesheets/**, empty.xml"
+            includes="**/*.xml"
+            lastModifiedCheck="true"
+            templatePath="${xdocs.src}/stylesheets">
+    </anakia>
+    
+  </target>
+  
+
+ <!-- ================================================================= -->
+ <!-- Build a complete distribution. Results go to ${dist.images}       -->
+ <!-- ================================================================= -->
+  <target name="dist" depends="init, clean, requiredepsCheck, javadoc, jar, site, build.nt.dll">
+
+    <delete verbose="true">
+      <fileset dir=".">
+        <patternset>
+          <include name="**/*.bak"/>
+          <include name="${BSTEM}/**/temp*"/>
+          <include name="${BSTEM}/performance/test"/>
+          <include name="${BSTEM}/test/current.*"/>
+          <include name="${BSTEM}/test/current.*"/>
+          <include name="${BSTEM}/examples/test"/>
+          <include name="${BSTEM}/test/logging.*"/>
+          <include name="${BSTEM}/test/log4j.properties"/>
+          <include name="${$BSTEM}/test/socket.lcf"/>
+          <include name="${BSTEM}/test/file"/>
+          <include name="${BSTEM}/net/test/loop.log"/>
+          <include name="${BSTEM}/net/test/loop.log.1"/>
+        </patternset>
+      </fileset>
+    </delete>
+    
+    <mkdir  dir="${dist.images}" />
+    
+    <mkdir  dir="${dist.tmp}/logging-log4j-${version}" />
+    
+    <copy todir="${dist.tmp}/logging-log4j-${version}">
+      <fileset dir="${base}"
+         includes="src/java/**,
+         src/xdocs/**,
+         docs/**,
+         examples/**,
+         build.xml,
+         build.properties.sample,
+         INSTALL.txt,
+         LICENSE.txt"
+         excludes="**/*.bak,
+         **/goEnv.bat,
+         docs/pub-support/*,
+         src/java/org/apache/log4j/test/**/*,
+         **/.#*,
+         examples/classes/**"
+         />
+      <fileset dir="${dist.dir}"
+        includes="docs/**,
+        lib/**"
+        />
+    </copy>
+    
+    <tar tarfile="${dist.images}/logging-log4j-${version}.tar.gz"
+         basedir="${dist.tmp}"
+         includes="logging-log4j-${version}/**"
+         compression="gzip"
+         longfile="gnu" />
+    
+    <zip zipfile="${dist.images}/logging-log4j-${version}.zip"
+         basedir="${dist.tmp}"
+         includes="logging-log4j-${version}/**" />
+
+
+    <delete dir="${dist.tmp}" />
+  </target>
+
+</project>
+
diff --git a/trunk/docs/HISTORY.txt b/trunk/docs/HISTORY.txt
new file mode 100644
index 0000000..3b914e3
--- /dev/null
+++ b/trunk/docs/HISTORY.txt
@@ -0,0 +1,1936 @@
+ 
+	
+   [*] Changes that are 100% compatible with existing client code.  
+  [**] Changes that requiring little or no modification to existing
+       client code. 
+ [***] Changes requiring important modifications to existing client code.
+   
+   [D] Changes affect a method or property which was previously marked as 
+       deprecated.
+
+   January 30th, 2006
+ - Release of version 1.3alpha-8
+   
+ - Bugs 35452, 37965, 38304, 38395, 37740: Substantial modifications to restore 
+   binary compatibility with log4j 1.2.xx.  Restored NTEventLogAppender,
+   org.apache.log4j.jmx classes, org.apache.log4j.varia filters and
+   org.apache.log4j.helpers date formats. (Please note that the
+   NTEventLogAppender dll is not packaged with this release, but the build
+   target (build.nt.dll) is available to build it locally if needed.  The next
+   release will contain the build dll.)
+   
+ - Bug 38394: enhanced diagnostic message on configuration errors.
+ 
+ - Bug 38304: fixed incorrect error message if console appender
+   used during configuration is missing at cleanup.
+   
+ - Bug 38104: Consolidated locations of generated files.
+ 
+ - Bug 37864: Generation of binary compatibility report.
+ 
+ - Bug 37960: Updated documentation generation to use Velocity 1.4 and 
+   eliminated dependency on logging-site module.
+
+ - Bug 38406: Removed inadvertent JDK 1.4 dependencies.
+ 
+ - Removed org.apache.log4j.watchdog.TimedURLWatchdog in favor of
+   org.apache.log4j.watchdog.TimedLocationWatchdog.  TimedLocationWatchdog is
+   more generic in that is uses a String to describe the location instead of a
+   URL.  FileWatchdog inherits from this class and the future HttpWatchdog will
+   as well.
+
+   October 12th, 2005
+ - Release of version 1.3alpha-7
+ 
+ - Added target="1.2" and source="1.3" attributes to all usages of <javac>
+   to make sure that classes are compatible with JDK1.2+ no matter the JDK
+   under which the compilation is done. This mirrors what was done to the
+   1.2 branch while taking into account usage of JDK1.2 features where the
+   1.2 branch needs to stay compatible with JDK1.1. [*]
+ 
+ - Added back org.apache.log4j.spi.ErrorHandler and its implementations to
+   help make 1.3 binary compatible with 1.2.xx. Implementations are all NOP
+   and clearly marked as deprecated in the Javadoc. Same goes for get/set
+   methods for error handlers in appenders. This change allows applications
+   such as LogWeb, which make heavy use of Log4j internals, to compile and
+   run against Log4j-1.3 where it was only compatible with 1.2.xx
+   previously. [*]
+ 
+ - Made private "next" variable in org.apache.log4j.spi.Filter public to
+   make it binary-compatible with the 1.2 branch. Also marked it as
+   deprecated (which I also did for the 1.2.12 release) [*]
+ 
+ - Chatty output about Logger creation or retrieval events is now
+   suppressed by default.  They can be enabled by explicitly setting the
+   log4j.coreDebug system property. [*]
+ 
+ - The log4j.debug system property no longer has any affect as all
+   log4j output is done through regular Logger objects. However, in
+   configuration file in properties format, the log4j.debug property will
+   cause PropertyConfigurator to *temporarily* output logs generated
+   during the configuration process. This is very similar to the way the
+   debug attribute works in configuration files in XML format. [*]
+ 
+ - Fixed bug 35965 by adding protected accessors for member variables
+   topicConnection, topicSession, and topicPublisher. [*]
+
+ - Fixed Bugzilla 14551, misplaces sample.xml links in JavaDocs.
+   http://issues.apache.org/bugzilla/show_bug.cgi?id=14551 [*]
+
+ - Closed Bugzilla 34162, log4j-db.jar built empty, which had been
+   previously fixed.
+   http://issues.apache.org/bugzilla/show_bug.cgi?id=34162 [*]
+
+ - Closed Bugzilla 34163, missing chainsaw module in xdocs/install-chainsaw.xml,
+   which had been previously fixed.
+   http://issues.apache.org/bugzilla/show_bug.cgi?id=34163 [*]
+
+ - Fixed Bugzilla 30853: made System.out printing conditional upon
+   log4j.debug system property. [*]
+ 
+ - Fixed Bugzilla 30623, better JavaDoc for DailyRollingFileAppender#getDatePattern.
+   http://issues.apache.org/bugzilla/show_bug.cgi?id=30623 [*]
+
+ - Fixed Bugzilla 34747: DBAppender reused Statement objects inappropriately.
+   http://issues.apache.org/bugzilla/show_bug.cgi?id=34747 [*]
+ 
+ - Fixed Bugzilla 35324: VectorWriter#println NPE on null argument.
+   http://issues.apache.org/bugzilla/show_bug.cgi?id=35324 [*]
+
+  
+  January 20th, 2005
+ - Release of version 1.3alpha-6
+
+ - Fixed involuntary omission of DOMConfigrator (deprecated) in log4j-VERSION.jar.
+ - Added missing files in log4-oro.jar.
+ - The lengthy system property "log4j.repositorySelectorClass" was renamed as 
+   "log4j.repositorySelector".
+  
+  January 19th, 2005
+ - Release of version 1.3alpha-5
+
+ - Universal and Generic Logging Interface (UGLI) is now part of log4j. 
+   UGLI allows variation in the logging API implementattion in a simple and 
+   robust way. Log4j directly supports the interfaces defined by UGLI. 
+   For more information see http://logging.apache.org/log4j/docs/ugli.html [*]
+   
+ - Log4j now ships with several jar files, one jar file per dependency. [*/**]  
+ 
+ - Fixed Bugzilla 15198: TelnetAppender: NullPointerException if
+   SocketHandler not initialized. [*]
+
+ - Fixed Bugzilla 12112: CountingQuietWriter miscounts bytes. [*]
+
+ - Fixed Bugzilla 18076: setting of firstTime in OnlyOnceErrorHandler. [*]
+
+ - Added pattern conversion support for the Subject line for emails 
+   generated by  SMTPAppender. The set of patterns is the same as those 
+   supported by PatternLayout. [*]
+
+ - Implemented Bugzilla 20985: charset support for SMTPAppender [**]
+  
+ - Implemented Bugzilla 20500: separate registry clearing from doConfigure in PropertyConfigurator
+   to allow to easier extension. [*]
+
+ - Fixed Bugzilla 23912: unsafe access to BoundedFIFO in AsyncAppender. [*]
+
+ - Changed converter register accessors in PatternParser to take/return Map instead
+   of HashMap, a cleaner abstraction allowing for different implementation types. [*]
+
+ - Fixed Bugzilla 26658: modify build.xml chainsaw target with respect to crimson.jar [*]
+
+ - Fixed Bugzilla 28682: NullPointerException in SocketHubAppender#cleanup. [*]
+
+ - Fixed Bugzilla 28464: White space significant at end of line for PropertyConfigurator. [*]
+
+ - Fixed Bugzilla 26117: Output encoding for TelnetAppender. [*]
+
+  November 25, 2004
+
+ - Release of version 1.3alpha-3
+ 
+ - Classes are built with the javac debug setting on.
+ - Fixed unset activeFile bug in SlidingWindowRollingPolicy.
+ 
+  November 25, 2004
+
+ - Release of version 1.3alpha-2
+ 
+ - The deprecated DOMConfigrator was mistakenly left as the default
+   configrator for XML files.  This has been fixed and JoranConfigrator
+   now is the default configrator for XML files.
+ 
+ November 24th, 2004
+
+ - Release of version 1.3alpha-1
+
+ - Log4j now uses itself for its own logging. For more details refer to
+   
+     http://www.qos.ch//logging/internalLogging.jsp
+
+ - The Appender.requiresLayout() method is no longer needed.
+
+   This method was only used by PropertConfigrurator and not
+   DOMConfigurator nor JoranConfigurator. It was never strictly necessary
+   and case the layout is *optional* for a given appender type, it causes
+   unwarranted error messages.
+
+   This simplification will make it slightly easier to write appenders.
+
+ - Added new printing methods message supporiting pattern parsing. These new forms 
+   avoid superflous parameter construction and yield a significant performance 
+   increase in the case of disavled log statements. [*]
+   
+ - Added new ListAppender & ListModelAppender classes to the org.apache.log4j.varia package.  
+   These are rather simplistic Appender implementations that store LoggingEvents in
+   an internal buffer (java.util.List and a DefaultListModel respectively) which can 
+   be useful in certain applications (such as a Swing GUI app etc). [*]
+   
+ - org.apache.log4j.HTMLLayout has been replaced with org.apache.log4j.html.HTMLLayout.
+   The new HTMLLayout admits a conversion pattern using the same syntax as
+   PatternLayout. Thus, the user can customize the content of columns in the HTML table
+   produced by HTMLLayout. Just as importantly, many visual aspects of the table can be
+   customized at row or even cell level with the help of a CSS file.
+   
+   The new HTMLLayout has been contributed by Steve Mactaggart.
+ 
+ - Log4j now ships with JoranConfigurator, a powerful replacement for
+   DOMConfigurator.  Joran bring a plethora of new capabilities. In
+   particular, it can be taught new parsing rules on the fly, even from
+   within the config file being processed. Moreover, with the help of
+   implicit actions, it can configure specialized sub-components of log4j
+   components. 
+
+   Many of the new components in version 1.3 can be configured thanks
+   to the new capabilitues found in JoranConfigurator.
+    
+ - Fixed bug #15585 relative to location information extraction on the AS400. The fix
+   was contributed by Patrice Kolata. [*]
+  
+ - Log4j will now automatically include stack traces for nested
+   exceptions. Log4j extends the automatic nested exception printing
+   available in JDK 1.4 to nested exceptions accessible through methods
+   named "getRootCause", "getNextException" and "getException", not just
+   "getCause" as in JDK 1.4. [*]
+   
+ - The location information extraction code has been refactored to use
+   a faster mechanism when running on JDK 1.4 or later. The new mechanism, contributed 
+   by Martin Schulz, is at least twice as fast. 
+ 
+   See http://marc.theaimsgroup.com/?t=108473346700001&r=1&w=2 for more details. [*]
+   
+ - Made ignoresThrowable a settable property. The user can now force a layout
+   to ignore the throwable in the event even if the layout knows how to handle
+   exceptions. Conversely, an appender can be fooled to believe that a layout
+   handled the exception in the logging event by setting a layout's ignoresThrowable
+   property to false. [*]
+   
+ - The org.apache.log4j.db package replaces the old org.apache.log4j.jdbc
+   package. The new package supports most relational database systems
+   such as PostgreSQL, MySQL, Oracle, DB2 or MsSQL. It can also handle
+   retrieve connections using a JDBC driver class, a data source class or
+   JNDI. [*]
+     
+ - A sequenceNumber field has been added to LoggingEvent. This fields is useful when 
+   checking for the equality of two logging events or when ordering them. [*]
+
+ - Log4j now has its own Scheduler. It allows jobs to be executed at a certain date
+   or even periodically. It only requires just one extra thread. [*]
+   
+ - Added the "isPristine" flag to LoggerRepository. As soon as a configurator
+   starts configuring a repository this flag is set to false.
+   
+ - Removed support for the deprecated property "log4j.configDebug". [**/D]
+
+ - The new ContextJNDISelector allows for the possibility of managing
+   multiple logger hiearchies within the same application server while
+   only a single copy of log4j.jar is present in memory.
+   
+ - Added keys() method to the MDC class as requested by Don Isenor.
+ 
+ - Certain operations on Loggers are now made using ReaderWriterLocks which 
+   allows simultaneous read operations but only one write operation. This should 
+   significantly improve logging throughput in heavily loaded server environments. 
+
+ - Rolling can now be triggered based on time or size as was already the case in 
+   log4j 1.2. However, the new architecture allows for much more variation in the 
+   timing of the rollover and the actions taken during rollover (i.e on the fly 
+   compression, renaming, moving). The new architecture was suggested a long time 
+   ago by James P. Cakalic. A similar design can be found in the Avalon Logkit 
+   package. 
+
+   In order to avoid duplication, the old org.apache.log4j.RollingAppender
+   and org.apache.log4j.RollingAppender classes have been removed. [**]
+
+ - LoggingEvent was extended to allow properties. Properties are meant to be set 
+   by Layout and Appender classes as they output/process logging events. 
+   Properties are per logging event where MDC values are per thread. 
+ 
+ - Another LoggingEvent constructor was added to allow instances to be reconstituted 
+   when received from remote sources that do not use LoggingEvent as the transport 
+   type (like XML for example).   
+
+ - Fixed bug #23096. NullAppender getInstance method is now declared as a static.  
+
+ - Fixed bug #10706. The %X pattern without a key no longer causes a NullPointer 
+   exception, 
+
+  - ADD: LIST OF CHAINSAW IMPROVEMENTS. 
+
+ November 2nd, 2004
+ 
+ - Release of version 1.2.9
+
+  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.
+
+  For a more detailed discussion, refer to the document entitled
+  preparing for log4j 1.3 at:
+
+    http://www.qos.ch/logging/preparingFor13.jsp
+ 
+ February 19th, 2003
+ 
+ - Release of version 1.2.8
+
+ - Fixed bug #11570 whereby XMLAppender would throw a
+   NullPointerException if the input message was null. Many thanks to
+   David Vandegrift for reporting the bug and to Hendrik Brummermann for
+   supplying the patch. [*]
+
+ - Fixed bug #12366 whereby various versions of Xerces would not parse
+   log4j configuration scripts expressed in XML format. [*]
+
+ - Fixed bug #14827. The "removes" buffer used in the flushBuffer() method
+   of JDBCAppender is now cleared, solving the memory leak.  Thanks to John
+   Landers for reporting the bug and suggesting the fix. [*]
+
+ - Fixed bug #15599. SocketAppender now honors ReconnectionDelay of 0.
+   Many thanks to Scott Schram for reporting the bug and providing the fix. [*]
+
+ October 9th, 2002
+
+ - Release of version 1.2.7
+
+ - Log4j now searches for the file log4j.xml as well as the file
+   log4j.properties during log4j initialization. [*]
+
+ July 31st, 2002
+
+ - Release of version 1.2.6
+
+ - Addition of new options in JMSAppender and new command line arguments in 
+   JMSSink. [*]
+
+ - Added new method getLoggerName() in LoggingEvent class. The
+   getLoggerName is the preferred way for accessing the logger
+   name. The public access categoryName field should not be accessed
+   directly. Similarly, added the getLevel method which is now the
+   preferred way of accessing the event's level. The public access
+   level field should not be accessed directly.  The javadocs now mark
+   the categoryName and level fields as deprecated.
+
+   Modified existing appenders to comply with these new directives. [*]
+
+ - Log4j now will check if a system property named "log4j.ignoreTCL"
+   is set. If it is set, then it will ignore the Thread Context
+   ClassLoader when loading classes. This solves the irritating
+   "appender is not assignable to Appender" messages observed when
+   log4j.jar is loaded by multiple class loaders. 
+
+   The error reporting for this problem was also improved. [*]
+
+ - Fixed bug #10528 whereby calling the MDC.get method with a null
+   argument would throw a NullPointerException. [*]
+
+ July 5th, 2002
+ 
+ - Release of version 1.2.5
+	
+ - Minor changes and bug fixes in LF5. [*]
+ 
+ - Calling an AsyncAppender close method also closes the embedded
+   appender instances. This resolves bug #10185 submitted by Paul
+   Voutier. [*]
+
+ June 12th, 2002
+
+ - Release of version 1.2.4
+
+ - The JDBCAppender is marked as slated for replacement. Do not build
+   critical software using it. 
+
+ - Added LF5 documentation and examples. Further tests are required
+   for full integration. [*]
+
+ - XMLLayout can now output messages which contain embedded CDATA
+   sections. This resolves bug #9750. Many thanks to Michael
+   A. McAngus for supplying the relevant patch. [*]
+
+ - The dispatcher thread associated with AsyncAppender is now marked
+   as a deamon thread. This resolves bug #9750. [*]
+
+ - Added missing NTEventLogAppender.dll as reported in bug #9606. [*]
+
+ - In response to bug report 9435, the log4j.dtd was changed so that
+   <log4j:event> is now made of logger and level attributes instead of
+   category and priority. Changed XMLLayout to conform to the
+   DTD. Chainsaw was changed to adapt to the XMLLayout. [*]
+
+ - Added missing LevelRangeFilter file. [*]
+
+ May 24th, 2002
+
+ - Release of version 1.2.3
+
+ - Fixed bug #9285 where the SyslogAppender would incorrectly compute
+   the length of the datagram to send to the remote syslogd host.
+   Reported by Mamoru Kadota. [*]
+
+ - Fixed bug #8505 where the stack trace of exception would not be
+   properly printed on the Compaq tru64 Unix platform. Initially
+   reported by Fabrice Claes and later by Espen H. Kolstad who also
+   provided the fix. [*]
+
+ May 22nd, 2002
+
+ - Release of version 1.2.2
+
+ - Log4j configurators take the "NULL" string value as a synonym for
+   "INHERITED". Both of these two strings are legal level values for
+   setting the level of a logger. Both values are case insensitive. [*]
+
+ - When loading component classes, log4j will now first attempt to use
+   the Thread Context Loader and if that fails, it will use
+   Class.forName. In log4j 1.2 and 1.2.1, only Class.forName was used
+   and the TCL was ignored. This change is a response to bug #9305
+   opened by Scott M. Stark. [*]
+
+ May 17th, 2002
+
+ - Release of version 1.2.1
+
+ - This minor release fixes bug #9155 reported by Nicko Cadell.
+   LoggingEvent.getMDCCopy() method now sets mdcCopyLookupRequired
+   instead of ndcLookupRequired.  This bug would cause the wrong MDC
+   information to appear on a log server. It could only occur if the
+   client wrapped an AsyncAppender around a SocketAppender or if the
+   server used an AsyncAppender for its logging. [*]
+
+ May, 2002
+ 
+ - Release of version 1.2 
+
+ - Fixed bug #8527. A closed TelnetAppender would continue waiting
+   for connections even if its ServerSocket was closed. This caused
+   the TelnetSocket to sit in a loop and complain about the closed
+   socket. [*]
+
+ - AsyncAppender throws NullPointerException problem. The bug was actually in
+   AppenderSkeleton. See bug #5444 details. [*]
+
+ - Added support for recursive variable substiuton as requested by
+   Eric Chastan. [*]
+
+ - SocketNode now used a BufferedInputStream as suggested by Kok Chong
+   in bug report #3933. [*]
+
+ - Fixed a problem with DailiyRollingAppender which would not
+   correctly compute the rollover period in certain timezones. See bug
+   report #7550. [*]
+
+ - Fixed documentation bug #2726 in FAQ.html. [*]
+
+ - In WriterAppender, fixed bug #2383 by adding a flush statement in the
+   writeFooter method. [*]
+   
+ - In XMLLayout, Fixed bug #7550 by escaping the method attribute. The 
+   XMLLayout also outputs each item of a stack trace in a separate
+   line. [*]
+
+ - Fixed bug #5932 as suggested by Heikki Linnakangas. The
+   LoggingEvent.getMDCCopy method now clones the MDC instead of just
+   referencing it. [*]
+
+ (rc1)
+
+  - The ANT build script was modified to use jar files specified in
+    the build.properties file instead of the CLASSPATH environment
+    variable. The build.properties file depends on local paths and is
+    supplied by the user. The build.properties.sample file is included
+    in the distribution. The build.sh and build.bat scripts have
+    been removed. This is the way many other jakarta projects build their
+    projects. The jar files in the dist/lib directory were also removed
+    since they are no longer used. [*]
+
+ - The DOMConfigurator now interprets the string after the '#'
+   character in the value attribute within the <level> element as
+   the fully qualified class name of a custom Level. This is consistent
+   with the way log4j handles "level" values in other places. The
+   class attribute is still honored. [*]
+
+ - Added Oliver Burn's chainsaw tool to the core log4j
+   distribution. Visualisation and dynamic filtering of log events is
+   bound to be a very important area of activity in the future. [*]
+
+ - Added the org.apache.log4j.jdbc.JDBCAppender which as the name
+   indicates sends events to a database using the JDBC API. Thanks to
+   Kevin Steppe for supplying the code. [*]
+
+ - Added SocketHubAppender class as contributed by Mark Womack. This
+   appender sends LoggingEvent objects to a set of remote a log
+   servers. [*]
+
+ - In the Category class, the getChainedPriority method has been
+   replaced with getEffectiveLevel method. [*]
+
+ (beta4)
+
+  - Replaced the custom class loading based on the thread context class
+    loader with a simple Class.forName() call. This solves two allied
+    but distinct problems encountered when using Ant with JUnit
+    although the bug is more general. In one instance of the
+    problem, log4j would throw java.lang.NoClassDefFoundError for
+    org/apache/log4j/AppenderSkeleton where log4j.jar and related
+    classes were clearly available to the Ant classloader. In another
+    incarnation, log4j would reject a custom appender claiming that it is
+    not assignable to a org.apache.log4j.Appender variable. This would
+    occur when log4j.jar was available to both the Ant classloader and the
+    system classloader. 
+    
+    Thanks to Dave Herman for providing detailed scenarios exposing
+    the issues involved. See
+      http://forum.java.sun.com/thread.jsp?forum=38&thread=70946
+      http://forum.java.sun.com/thread.jsp?forum=38&thread=70946#479697
+      http://marc.theaimsgroup.com/?l=ant-user&m=101139178705895&w=2
+    for more details. [*]
+
+
+ (beta3)
+  
+ - Fixed the complaints the compiler issued when using the
+   Logger.setLevel() methd. [*]
+
+ - Incorporated the performance enhancements to ISO8601DateFormat and
+   AbsoluteTimeDateFormat classes submitted by Andrew Vajoczki.
+
+ (beta2)
+
+ - Source code written for log4j 1.1.3.jar will compile fine with
+   log4j 1.2X. However, code compiled for log4j 1.1.3 would previously
+   systematically throw "java.lang.NoSuchMethodError" runtime exceptions
+   when run with log4j 1.2 - prior to beta2. This problem has been
+   corrected in beta2. Pheew, that was a close one. [*]
+
+ - Log4j 1.2 is now backward compatible in serialization of
+   LoggingEvents. For example, a 1.1.3 SocketAppedner can write to 1.2
+   SocketServer. Similarly a 1.2 JMSAppender will work with 1.1.3
+   JMSSink. This should ease the move to log4j 1.2, especially in
+   large deployments. [*]
+
+ (alpha7)
+
+ - The src/java/org/apache/log4j/examples/ directory moved under the
+   top-level directory as examples/. [*]
+
+ - Fixed the ArrayIndexOutOfBoundsException that was thrown by
+   AsyncAppender if multiple threads were trying to log an event
+   containing an exception near simultaneously. Thanks to Thomas Tuft Muller
+   for reporting this bug. [*]
+
+ (alpha1-alpha6)
+
+ - Improved error reporting in DOMConfigurator. Thanks to Thomas Tuft
+   Muller for contributing the enhancement. [*]
+	
+ - Log4j is now configurable using JMX. JMX support is not of
+   production quality. [*]
+
+ - Added support for different encodings in WriterAppender. Thanks to
+   Ben Sandee for submitting the relevant patch. [*]
+
+ - Modified SMTPAppender to allow multiple email sessions. Thanks to
+   Jon Skeet for supplying the relevant patch. [*]
+
+ - The CategoryFactory class has been replaced by the LoggerFactory
+   class. The makeNewCategoryInstance method has been renamed as
+   makeNewLoggerInstance. This change requires subclasses of Category
+   classes to be modified and recompiled. [**]
+
+ - The Level class replaced the Priority class. Priority class now
+   extends Level to preserve backward compatibility. [*]
+
+ - The Logger class replaced the Category class. Logger class 
+   extends Category to preserve backward compatibility. We proudly
+   mark this change with a single star for 100% compatibility. [*]
+
+ - The Category.assert method has been replaced by
+   Category.assertLog.  This change was necessary because assert is a
+   language reserved word in JDK 1.4. [*/**]
+
+ - Removed deprecated methods setOptions and getOptionStrings defined
+   in the org.apache.log4j.spi.OptionHandler interface. This interface
+   is implemented by most log4j appenders and layouts. In particular,
+   all appenders and layouts shipped with log4j contain these
+   deprecated methods. They have become totally redundant after we
+   moved to JavaBeans style configuration in log4j 1.1. [**]
+
+ - The disable(Level) methods in Hierarchy have been removed and been
+   replaced by threshold methods. [**]
+
+ - Added buffered IO capability to FileAppender and subclasses. [*]
+ 
+ - The location information (or stack information) was not correctly
+   transmitted by JMSAppender. [*]
+
+ - Added event reporting capability to the Hierarchy class.
+ 
+ - Added new system property "log4j.configuratorClass". This property
+   allows the user to specify the custom configurator at the default
+   initialization phase. This property replaces the previous
+   interpretation of the reference part of "log4j.configuration" 
+   as the custom configurator class. This interpretation was sometimes
+   erroneous and caused headaches. [*]
+   
+ - Introduced the Mapped Diagnostic Context or MDC class. This class
+   is similar to the NDC except that the diagnostic context is based
+   on a map instead of a stack. Moreover the MDC is automatically
+   inherited by child threads under JDK 1.2 and above. [*]
+
+ - Corrected a performance bug in the NDC class as observed by Dan
+   Milstein and independently by Ray Millard. [*]
+
+ - Removed deprecated methods disable(Priority), disableAll,
+   disableDebug, disableInfo and enableAll in BasicConfigurator. [*]
+
+ - Added supports java.io.Reader objects in the method doConfigure(),
+   instead of only InputStream. Thanks to Mark Womack for submitting
+   the relevant patch. [*]
+
+ - Corrected the restart bug in DayliRollingFileAppender. Thanks to
+   Jim Moore for supplying the relevant patch. [*]
+
+ June 19, 2001
+
+ - Release of version 1.1.3
+
+ - Added a missing namespace declaration in the log4j:configuration
+   element in log4j.dtd. The missing declaration caused the new
+   generation of namespace aware parsers to barf when parsing log4j
+   configuration files. [*]
+
+ - Reduced the size of log4j-core.jar to 78KB. [*]
+
+ - Minor documentation changes. [*]
+
+ June 7, 2001
+
+ - Release of version 1.1.2
+
+ - Corrected a problem with the static initializer of the Category
+   class which would use the wrong class loader to search for the
+   default configuration file.  The associated search algorithm has
+   been also simplified. Nevertheless, the preferred method to specify
+   the automatic configuration file is by setting the
+   log4j.configuration system property. [*]
+
+ - Documentation improvements. Added a new section to the manual
+   explaining the default initialization procedure [*]
+ 
+ - Enhancements to the org.apache.log4j.examples.appserver package. [*]
+
+ - Corrected a bug in the way the NTEventLogAppender printed
+   exceptions. [*]
+
+ May 20, 2001
+
+ - Release of version 1.1.1.
+
+ - Added missing custom priority support in PropertyConfigurator. [*]
+
+ - Made a number of fields protected instead of default access in
+   SMTPAppender. [*]
+
+ May 19, 2001
+
+ - Release of version 1.1.
+
+ - This release has the same code as 1.1b7. It differs only in a few minor
+   documentation changes.
+
+ May 9, 2001
+
+ - Release of version 1.1b7
+
+ - Made BasicConfigurator disable methods static as they were in log4j
+   1.0.4. Thanks to Francisco Marin for reporting the bug. [*]
+
+ - Corrected a two related deadlock problems introduced while fixing
+   bug 1505. Thanks to joelr@viair.com for reporting the problem. [*]
+
+ - The configureAndWatch methods in Configurators did not close the
+   configuration file, preventing its editing. See bug 1686. [*]
+
+ - In DOMConfigurator.setParameter special character conversion now
+   precedes variable substitution. This change was suggested by Steven
+   Velez. The vast majority of users should be oblivious to it. [*]
+
+ - The TextPaneAppender is no longer maintained and has been
+   removed.  It is still available under the contribs/
+   directory. This change has been discussed in the log4j mailing
+   lists and no one objected to the removal of the TextPaneAppender
+   class. 
+
+ April 26, 2001
+
+ - Release of version 1.1b6
+
+ - Aaron Greenhouse from Carnegie Mellon SCS found a series of
+   multi-threading related bugs in Category and AsyncAppender. See bug
+   ids 1505 and 1507 in our bug database for exemplary bug
+   reports. They are worth the detour. [*]
+ 
+ - InvalidJarIndexException is only available in JDK 1.3.  Referring
+   to this exception type caused log4j 1.1b5 to break on earlier JDKs.
+   We now avoid referring to it. [*]
+
+ - Added PriorityRangeFilter by Simon Kitching. See the Threshold
+   option in AppenderSkeleton for a more convenient alternative. [*]
+
+ April 22, 2001
+
+ - Release of version 1.1b5
+
+ - In HTMLLayout, the Title option sets the HTML document 
+   title (<title>...<title>). [*]
+ 
+ - Corrected an important performance bug in LocationInfo. Hein Couwet
+   and kr@it-practice.dk have independently identified the bug. This is
+   yet another example of the difference made by the number of eyeballs
+   studying source code. [*]
+
+ - Corrected the incorrect value returned by LocationInfo.getClassName
+   method when running under IBM Visual Age. Thanks to Mathias
+   Rupprecht for supplying the relevant patch. [*]
+ 
+ - Corrected a bug where the build.sh file in the distribution would be in 
+   DOS CRLF format. Thanks to ma.darche@free.fr for reporting the
+   problem. [*]
+
+ - Corrected InvalidJarIndexException thrown in applets while
+   searching for the default log4j configuration file. Thanks to
+   Michael Lundahl for reporting this bug. [*]
+  
+ - Added missing PropertySetterException class to log4j-core.jar.
+   Thanks to ma.darche@free.fr for reporting this bug. [*]
+
+ April 20, 2001
+
+ - Release of version 1.1b4
+
+ - Mathias Bogaert observed that in version 1.1b3 the search algorithm
+   for the resource used in automatic log4j configuration was
+   different than in 1.0.x. Beta4 uses a more powerful mechanism which
+   is also compatible with 1.0.x. [*]
+
+ - Paul Glezen correctly observed that if log4j is deployed in a
+   client/server mode where multiple log4j clients log to a log4j
+   server, all hosts must be upgraded to version 1.1 in one go because
+   the internal LoggingEvent class used in client/server communication
+   changed in log4j 1.1. 
+ 
+ April 18, 2001
+
+ - Release of version 1.1b3
+
+ - Added a RollingFileAppenderBeanInfo class that fakes the
+   maxFileSize JavaBeans property as a String type instead of a long.
+   This allows us to resuscitate setMaxFileSize(long) method that was
+   removed in 1.1b2 breaking 100% backward compatibility. This addition
+   restores 100% backward compatibility. [*]
+
+ April 18, 2001
+
+ - Release of version 1.1b2
+
+ - The directory structure has changed to better suit Jakarta
+   conventions as follows:
+
+   org/**   --> src/java/org/**
+   xdocs/** --> src/xdocs/**
+
+   If you have a CVS checked out copy of log4j be sure to check out a
+   fresh copy. [*]
+
+ - Added a few jar files required at build time to build/lib so that
+   it is now possible to compile log4j out of the box. [*]
+
+ - Whenever a priority parameter is expected in a configuration file,
+   one can now use a custom priority class. See OptionConverter.toPriority
+   method for more information. Note that the <priority> element in
+   log4j.dtd remains unaffected by this change. [*]
+
+ - Added the setQuietMode(boolean) method to LogLog. In quiet mode
+   LogLog will not output anything even in case of errors. [*]
+
+ - Log4j components are now configured as JavaBeans. The setOption and
+   getOptionString methods have been deprecated in OptionHandler
+   interface which is implemented by most log4j components. [*]
+
+ - The stack trace of a throwable passed in a logging statement is not
+   parsed into a stack array which is serializable. This allows cascading of
+   log4j servers to properly propagate throwable information. [*]
+
+ - In XML configuration files, the <configuration> element has been
+   deprecated and was replaced by the <log4j:configuration> element. [*]
+
+   The following perl command can help to migrate:
+
+   perl -p -i.bak -e "s/configuration/log4j:configuration/;" file1.xml .. fileN.xml
+
+ - The "log4j.configDebug" system property has been replaced with the
+   "log4j.debug" system property although it is still available.
+   Similarly, the "configDebug" attribute has been deprecated and
+   replaced with the "debug" attribute in log4j.dtd. [*]
+
+	
+ February 23, 2001
+
+ - Release of version 1.1b1
+
+ - Logging can now be disabled per Hierarchy. It can also be disabled
+   using configuration files using the "disable" directive.  The
+   "disableOverride" directive takes precedence over the "disable"
+   directive.  As a result of this change the disable family of
+   methods in BasicConfigurator has been deprecated and replaced by the same 
+   family of methods in the Hierarchy class. [*]
+
+ - The FileAppender has been split into three parts: WriterAppender,
+   ConsoleAppender and FileAppender. ConsoleAppender takes over the
+   console logging functionality of FileAppender. As a result support
+   for stream and console printing has been deprecated in FileAppender. [**]
+
+ - The FileAppender now correctly outputs the header and footer of its
+   layout. This problem was reported by too many users to list here. [*]
+
+ - Appenders and Layouts now get to see the raw message object in
+   LoggingEvent not just its rendered form. The access modifiers of
+   some LoggingEvent fields were changed so that they can be accessed
+   in less error-prone ways. Thanks to Jim Cakalic and Anders Kristens
+   for their valuable advice. [*]
+
+ - Added getLayout(), getErrorHandler(), and getFilter() to the
+   Appender interface. [*]
+
+ - Added getOption(key) method to the OptionHandler interface and modified
+   implementations of it as appropriate. [*]
+ 
+ - Added the much awaited DailyRollingFileAppender. [*]
+
+ - The structure of the distribution changed somewhat. The log4j.jar
+   files can be found under dist/. The javadoc directory has been
+   moved to docs/api/. We are now totally dependent on ANT to perform
+   all the steps involved in creating a release, including
+   compilation, jar file creation, generation of the javadocs, and for
+   the creation of the distribution tar and zip files. [*]
+
+ - Removed org/apache/log4j/varia/ResilientFileAppender.java which was
+   bogus to begin with. [*]
+
+ - XMLLayout will now mark some output as <![CDATA[ .. ]]> so that it
+   does not get interpreted by the XML parser. This was suggested by
+   Mathias Bogaert like a long list of other fixes. [*]
+
+ - Corrected a bug in CyclicBuffer.resize method that would not update the
+   next insertion point. Thanks to Ole Bulbuk for accurately reporting
+   the bug. [*]
+	
+ - The LoggingEvent class now supports serialization of priorities
+   derived from the org.apache.log4j.Priority class. [*]
+ 
+ - Improved the search method for finding the "log4j.properties" file in
+   the static initializer of Category class. Thanks to Calvin Chan for
+   supplying a better method. [*]
+
+ - The code handling the FCQN (formerly instanceFQN) parameter was
+   cleaned up. There is now a well-established and simple manner for
+   sub-classes of Category (or wrapper classes) to define the FCQN
+   variable: just define a static variable, say FCQN, consisting of
+   the fully qualified class name of the subclass or wrapper, supply
+   this variable as an argument to forcedLog method if and when
+   the sub-class or wrapper invokes that method. [*]
+
+ - Made the instanceFCQN an instance variable instead of a class
+   static in Category.java. In related move, the Category constructor
+   now takes an additional argument setting the instanceFCQN. This
+   makes life less miserable for Category subclasses. [*]
+
+ - Corrected a bug in the OptionConverter.instantiateByClassName
+   method that would not return the defaultValue in case of error. Thanks
+   to Matthieu Verbert for identifying this bug.
+
+ - Corrected the missing stack trace in e-mails generated by the
+   SMTPAppender when using certain Layouts. [*]
+   		
+ - Updated the "Adding Conversion Characters to PatternLayout"
+   document to reflect the latest changes to the code. Also added the
+   org/apache/log4j/examples/appserver directory containing the
+   associated example code. [*]
+
+ - Added the BufferSize option to the AsyncAppender. [*]
+
+ - Eliminated the SecurityExceptions thrown in Applets.  Thanks Timur
+   Zambalayev for reporting this bug. [*]
+
+ - Fixed the erroneously thrown IOInterruptedException when the AsyncAppender 
+   was closed. Thanks to Tom Palmer for accurately reporting this bug. [*]
+
+ January 12th, 2001
+
+ - Release of version 1.0.4 (the 20th major release)
+
+ - Corrected a serious bug in Hierarchy.java that would cause a
+   NullPointerException depending on the order of instantiation of
+   categories. Thanks to Wolfram Gewohn for reporting this bug. [*]
+
+ - Corrected a bug in the getOptionsStrings method of SMTPAppender
+   that omitted to mention the EvaluatorClass option. Thanks to Mark
+   Balster for reporting this bug. [*]
+
+ January 11th, 2001
+ 
+ - Release of version 1.0.3 (the 20th major release)
+
+ - Fixed a NullPointerException occurring in AsyncAppender after
+   invoking Category.shutdown. Thanks to Frank-Olaf Lohmann for
+   reporting this bug. [*]
+
+ - Modified the OptionConverter.selectAndConfigure method to take an
+   extra argument of type Hierarchy. This method is used internally
+   and should not affect most users. [*/**]
+
+ - Added the warn method to LogLog which is used internally by log4j
+   to report on itself. [*]
+
+ - Displaced a number of HTML files under the docs directory. The new
+   structure is compatible with the jakarta site and results in a 
+   more consistent navigation experience. [*]
+
+ - Made a few improvements in the javadocs. [*]
+
+ January 11th, 2001
+
+ - Release of version 1.0.2 (the 20th major release)
+
+ - Added the missing build.inc file to the distribution. No code
+   changed.
+
+ January 10th, 2001
+
+ - Release of version 1.0.1 (the 20th major release)
+
+ - This version corrects some documentation and build script bugs;
+   code has not changed.
+
+ January 8th, 2001
+
+ - Release of version 1.0 (the 20th major release)
+
+ - Package hierarchy now starts at org.apache.log4j. [***]
+
+   The following perl command can help in the transition:
+
+   > perl -p -i.bak -e "s/org.log4j/org.apache.log4j/;" file1.java .. fileN.java
+ 
+ - Added the fatal() family of methods to the Category
+   class.  Moreover, the EMERG priority has been removed from the
+   Priority class.  This priority has been replaced by the FATAL
+   priority that is more widely accepted.  This change will
+   require EMERG log statements to be replaced by FATAL log
+   statements.  Assuming EMERG log statements are rare, this should
+   have a small but bearable impact on existing client code. 
+ 
+   Moreover, the Unix Syslog priorities ALERT, CRIT and NOTICE are no
+   longer recognized. Support for these priorities was minimal and
+   few users should suffer from these changes. [**]
+
+ - Removed the methods setRootPriority, getRootPriority as these
+   methods were redundant and had been previously deprecated. [**]
+
+ - Removed the DOM Level 2 dependency in DOMConfigurator. This makes
+   log4j XML configurable using Sun's parser or Apache's Xerces. [*]
+
+ - The static initializer of the Category class now takes the
+   log4j.configuration system property to search for its configuration
+   file. The type of the configurator used to parse the configuration
+   file depends on the value of the log4j.configuration system
+   property. [*]
+
+ - Enhanced the PropertyConfigurator and DOMConfigurator to support
+   customisation of independent Hierarchy instances.  The
+   org.apache.log4j.net.SocketServer has been enhanced to take
+   advantage of this functionality. The old code of SocketServer has
+   been moved to SimpleSocketServer. [**]
+
+ - Enhanced the PropertyConfigurator to support variable substitution
+   for all options *values* (but not keys!). [*]
+
+ - Categories are now aware of the Hierarchy they are linked to. This
+   will provide a basis for several performance enhancements planned
+   for the future. [*]
+
+ - Added support for object rendering. It is now possible to register
+   an object renderer for a given object type. When the given object
+   needs to be logged log4j will invoke the corresponding renderer to
+   transform the object into a String.
+
+   As a result of this enhancement, all the String forms of all the
+   printing methods such as debug(String), info(String) have been
+   removed as they are no longer necessary. This change should be
+   backward compatible but requires recompilation of old client
+   code. Thanks to Michael Smith for noting the recompilation
+   requirement. [**]
+ 
+ - Added support for user defined category factories in the
+   PropertyConfigurator. Thus, it is now possible to configure log4j
+   with a properties file and still use custom Category
+   sub-classes. The DOMConfigurator had already a finer grain
+   support. [*]
+
+ - Added the SMTPAppender that in case of an error or fatal event
+   sends an e-mail containing latest N logging events in its buffer,
+   where N is chosen by the user. [*]
+
+ - Added the method getInstance(Class) to the Category class. [*]
+
+ - Corrected a bug in configureAndWatch method of configurators that
+   would configure log4j only after an unnecessary delay. [*]
+
+ November 30, 2000
+ 
+ - Release of version 0.9.1 (the 19th public release)
+ 
+ - Corrected a typo making NTEventLogAppender.dll register the wrong
+   category message file. Thanks to Peter Hayes for accurately
+   reporting this bug. [*]
+
+ - The DOMConfigurator and PropertyConfigurator can now automatically
+   detect modified configuration files and re-read them. [*]
+ 
+ - Added AsyncAppender which buffers log requests and serves them
+   at a later time. AsyncAppender can increase logging performance
+   tremendously if logging operations are interspersed with long
+   and blocking non CPU-intensive operations, typically I/O or network
+   access. For CPU intensive applications, using the AsyncAppender
+   will actualy degrade logging performance by 10 to 25 percent. [*]
+
+ - The log4j.dtd has been modified to allow appenders to refer to
+   other appenders by IDREF. [*]
+  
+ - The DOMConfigurator has been modified to take advantage of ID/IDREF
+   attributes when referring to appenders. This change requires a
+   DOM Level-2 API compliant parser. DOM Level-2 java bindings are
+   available at 
+   http://www.w3.org/TR/1999/WD-DOM-Level-2-19990923/java-binding.html.
+
+ - Added the configure(String filename) method to DOMConfigurator.
+   This method requires the presence of a JAXP compatible parser.
+
+   At this time, the only DOM2 and JAXP compatible parser seems to be
+   the Apache xerces parser.
+	
+ - Added the PriorityMatchFilter allowing filtering by exact priority
+   match. This was a common request by users. [*]
+
+ - The configuration of a category is now an atomic operation. This
+   ensures that log requests are not lost while configuration is in
+   progress. Anders Kristensen was to first to observe the potential
+   problems in non-atomic configurations. [*]
+
+ November 20th, 2000
+ 
+ - Release of version 0.9.0 (the 18th public release)
+
+ - The "log4j" element has been renamed to "configuration" in the
+   log4j DTD. This change requires that log4j configuration files
+   written in XML be modified. Since the log4j element figures only
+   once in the XML file, this change should take little time. [**]
+
+ - ResourceBundles are now category instance specific and no longer
+   class static.  Moreover, like other properties resource bundles
+   are inherited from the category hierarchy. [**]
+
+ - The jar files log4j.jar and log4j-full.jar now contain versioning
+   information in their respective manifest files. [*]
+
+ - Corrected an inconsistency in the NTEventLogAppender which broke it.
+
+ - Fixed a bug where configuration files were not parsed correctely
+   due to trailing spaces in option values as returned by
+   java.util.Properties. Trailing spaces are now removed from option
+   values. This bug was quite disconcerting because the
+   trailing spaces cannot be seen without careful examination of the
+   configuration file. [*]
+
+ - Added the XMLLayout.
+  
+   The output of the XMLLayout consists of a series of log4j:event
+   elements. It does not output a complete XML file. The output is designed to 
+   be included as an external entity to form a well-formed XML file. [*]
+
+ - Added a new abstract class org.log4j.helpers.DateLayout. The TTCCLayout
+   now extends DateLayout. [*]
+
+ - Corrected a rather subtle performance bug in the buffer management code
+   in PatternLayout. Thanks to Vladislav Dutov and Constantine
+   A. Plotnikov for for insisting on the correction of this bug. [*]
+
+ - Created a new package called org.log4j.spi. This new package
+   holds classes that are hidden from the casual user but are needed
+   to extend log4j. [*]
+   
+ - Added org.log4j.varia.ExternallyRolledFileAppender to handle
+   externally triggered file rollovers. [*]
+
+ - Added support for multiple hierarchy trees. [*]
+
+ - PatternLayout can now be  subclassed to support new conversion
+   patterns. [*]
+
+ - Extended the DOMConfigurator and the log4j DTD to properly handle
+   sub-classing of Category and Priority classes. 
+
+   There have been also minor adjustments to other classes to handle
+   sub-classing. These changes should be invisible to users. 
+
+   All categories except the root category can be sub-classed and also
+   assigned priorities sub-classing org.log4j.Priority.
+
+   The root category always exists and CANNOT be subclassed.
+
+   The ProppertyConfigurator remains unchanged. Thus, it does not
+   handle extensions of the Category class. [*]
+
+ - Added filter support in appenders. The DOMConfigurator and the
+   log4j.dtd have been enhanced to support filters. [*]
+
+ - Added error handling support to appenders. The DOMConfigurator and the
+   log4j.dtd have been enhanced to support filters. [*]
+
+ - Added support for correct interpretation of location information in
+   IBM's Visual Age environment. Thanks to Wolf Siberski for supplying
+   the relevant patch. [*]
+
+ - Added getAdditivity method to Category. This feature was requested
+   by Constantin Mitran. (mitran at ecircle.de) [*]
+
+ August 27, 2000
+ 
+ - Release of version 0.8.5b.
+
+ - Corrected multiple bugs in default initialization code of
+   Category class. Thanks to Jeff Turner for identifying and supplying
+   corrective patches. [*]
+
+ August 24, 2000
+ 
+ - Release of version 0.8.5a.
+
+ - Added the %n conversion character to PatternLayout so that a line
+   separator can be specified in a platform independent way. [*]
+ 
+ - In 0.8.5 internal Priority integer values were decoupled from the
+   Unix Syslog values. This broke SyslogAppedder. A new function
+   Priority.toSyslogInt is introduced to solve this bug. [*]
+
+Corrected a bug where the internal prtar tzvf iority integer
+
+ August 23, 2000
+ 
+ - Release of version 0.8.5.
+
+ - All log4j internal output is now prepended with the string
+   "log4j: ". This makes is easier to differentiate log4j internal
+   logs from messages output by other sources. [*]
+
+ - Sub-classes of Category class must now specify their fully
+   qualified name when constructing logging events. This allows the %C
+   conversion specifier in PatternLayout to work properly even with 
+   sub-classes or wrappers of Category. [*]
+  
+ - Added the method disableDebug to BasicConfigurator. This method
+   disables all print requests of debug priority regardless its
+   category. Similar methods disableInfo, disable, disableAll and
+   enableAll have also been added. Disable type methods can be
+   overriden by setting the log4j.disableOverride system property.
+
+   Calling BasicConfigurator.disableInfo is equivalent to the now
+   deprecated flagAsShippedCode method. [*]
+
+ - Given the above changes, the system property
+   log4j.shippedCodeFlagOverride is no longer honored. [**]
+
+ - It is now possible to sub-class Category. The sub-classes may
+   continue to adhere to the category hierarchy. This was a frequently
+   requested feature. [*]
+
+ - Corrected a problem with the additivity flag being ignored in
+   categories without appenders. This bug was discovered by Anders
+   Kristensen. [*]
+
+ - Added a method BasicConfigurator.resetConfiguration to reset the
+   log4j environment. This method should be used sparingly. [*]
+
+ - At the initialization of the Category class, the file
+   log4j.properties will now be searched from the search path used to
+   load classes. If the file can be found, then it is fed to the
+   PropertyConfigurator.configure(java.net.URL) method. [*]
+
+ - Failing to access system properties within the static initializer
+   of BasicConfigurator class is no longer reported as an error but as
+   a debug message. Thanks to Gilles Schlienger for reporting this
+   problem with applets. [*]
+
+ - Corrected a bug which caused infinite loops when using conversion
+   patterns with a single element, fortunately under very rare
+   circumstances. This bug was first reported by Igor Potraev, the
+   author of log4p. It was independently reported by Joe Haberl from
+   IBM Global Services. [*]
+ 
+ - Added a mechanism to lazily remove references to dead threads in
+   the NDC class. Indeed, in previous versions calling NDC.pop within
+   a thread but forgetting to call to NDC.remove before exiting (that
+   thread) resulted in a memory leak. [*]
+
+ - Corrected a huge memory leak in SocketAppender. This leak was due
+   to the ObjectOutputStream indefinitely holding a reference for each
+   written to the stream. Thanks to Dan MacDonald for very accurately
+   describing this bug. [*]
+
+ - The log and l7dlog methods in Category no longer ignore the shipped
+   code flag. This bug was reported by Mario Schomburg. [*]
+
+ - Added missing NDC information to LoggingEvent.writeObject
+   method. [*]
+
+ - Corrected handling of SocketException in SocketNode. Thanks to
+   Gerald Gutierez (ggutierez@emobiledata.com) for reporting this and
+   the previous problem. [*]
+
+ - Phased out custom shell scripts to build java documentation and jar
+   files in favor of Jakarta's ANT. It was becoming a nuisance to keep
+   the ANT build file in sync with the custom shell scripts. [*]
+  
+
+ May 11, 2000
+
+ - Release of version 0.8.4d.
+ 
+ - The NT EventViewer no longer complains about missing message 4096.
+
+ - Minor corrections in documentation.
+
+ - Added missing icons GIFs into the distribution.
+
+ - SocketNode now attempts to close the socket when exiting. Thanks to
+   Moses Hohman (mmhohman@rainbow.uchicago.edu) for noting this.
+ 
+ - Removed the com.ibm.log4j from the javadoc directory. This seems to
+   confuse VAJ. Thanks to Steve Ashcroft for reporting this problem.
+     
+ May 5, 2000
+
+ - Release of version 0.8.4c.
+
+ - As a result of the infinite loop problem (see next item), added
+   over 800 new test cases to stress-test the code in CategoryFactory
+   class where category creation occurs. [*]
+ 
+ - Under certain rare circumstances the Category.getInstance method
+   entered an infinite loop. Thanks to Mario Schomburg from IBM Global
+   Services / Hannover for identifying this problem and proposing a
+   patch. [*]
+
+ - DOMConfigurator and the log4j.dtd were out of sync on the type of
+   the priority directive. As a result, priority directives all
+   defaulted to DEBUG. Thanks to Peter (petervt@users.sourceforge.net)
+   for accurately reporting this bug. [*]
+ 
+ - Minor additions to the FAQ. [*]
+
+ - Added the NumberCruncher example showing how the NDC class can be
+   used to distinguish output from different clients. [*]
+ 
+ - Added the %x conversion specifier to the TTCC_CONVERSION_PATTERN in
+   the PatternLayout class. This is consistent expected output of
+   Trivial.java example. Thanks to Jerome (schrom@users.sourceforge.net)
+   for reporting this bug. [*]
+ 
+ May 3, 2000
+ 
+ - Release of version 0.8.4b.
+
+ - The value of the additivity option would not be parsed properly by
+   the ProperytConfigurator if the line containing the option
+   contained trailing spaces. [*]
+    
+ - Release of version 0.8.4a.
+
+ - The localized logging methods (l7dlog) omitted priority based
+   evaluation and erroneously logged all requests.  [*]
+ 
+ May 1, 2000
+
+ - Release of version 0.8.4.
+
+ - The close method was added to the Appender interface allowing
+   appender implementations to release any resources they may have
+   allocated. [*]
+ 
+ - The package naming scheme of changed from "com.ibm.log4j.*" to
+   "org.log4j.*".  The new naming reflects the open source nature of
+   the project and is consistent with the URL http://www.log4j.org. [***]
+ 
+ - Added internationalization support. See the newly introduced l7dlog
+   methods in Category class. [*]
+
+ - In the FileAppender, the File option now admits variable
+   substitution.  For example, if "java.home" system property is set
+   to /home/xyz and the File option is given the value
+   "%{java.home}/test.log", then File option will be interpreted as
+   "/home/xyz/test.log".
+
+   Thanks to Avy Sharell (sharell@online.fr) for contributing this
+   feature. [*]
+   
+ - SocketAppender is now officially part of the package. It is capable
+   of sending logging events to a remote SocketNode. The SocketNode
+   logs events according to server (local) policy. For example, a
+   client can log events to a local file and also send them to a
+   remote server (a SocketNode). This server can log the event to any
+   number of files, to the console, to any number of TextPaneAppenders
+   and even re-transmit the event to another server, and so forth.
+
+   This paradigm is common in most logging systems, e.g. Syslog and NT
+   Event Log.  Many thanks to Andrew Harrison for showing a way to
+   actually implement the paradigm. [*]
+ 
+ - The Category.callAppenders method now accepts a LoggingEvent
+   instead of creating one itself. This was necessary to accommodate
+   events generated at a remote client. [*]
+ 
+ - LoggingEvent class changed slightly to support remote logging. The
+   category field (a Category) has been replaced by the categoryName
+   field (a String). [*]
+
+ April 14, 2000
+
+ Release of version 0.8.3b
+
+ - Corrected a bug in Category.removeAppender(String) which would
+   never remove the desired appender. Thanks to Moses Hohman for
+   reporting this bug.
+ 
+ Release of version 0.8.3a
+
+ - Corrected a bug RollingFileAppender which would throw an uncaught
+   exception in case output file could not be opened for
+   writing. Thanks to Vinay Aggarwal for signaling this problem.
+  
+ April 13, 2000
+
+ - Release of version 0.8.3.
+ 
+ - The log4j.override key defined in BasicConfigurator has been
+   renamed to log4j.shippedCodeFlagOverride. [**]
+	
+ - The getCurrentCategories method in the Category class would not
+   return the correct value. Thanks to Timothy Potter
+   (tpotter@agency.com) for reporting this problem. [*]
+ 
+ - Appenders now admit a priority threshold as an option. All requests
+   with a priority lower than the appender's threshold priority are
+   ignored by the appender. [*]
+ 
+ - Integrated Christopher Taylor's DOMConfigurator parsing XML
+   configuration files. [*]
+ 
+ - The jar file log4j-net.jar has been replaced by log4j-full.jar.  It       
+   contains DOMConfigurator.class in addition to the com.ibm.log4j.net
+   package. [**]
+ 
+ - Added support for the ANT build tool. Thanks to Christopher Taylor
+   for supplying the build.xml file. ANT is available form
+   http://ant.apache.org. [*]
+ 
+ - FileAppender's File option now accepts the values "System.out" or
+   "System.err". If one these values is suppiled in a configuration
+   file then the output is directed to the corresponding stream.
+   Moreover, the default constructor of FileAppender no longer sets
+   System.out as an output target nor does it define a default
+   layout. [*]
+      
+ - Added caller class (C), caller file name (F), caller line number
+   (L), caller method name (M) conversion specifiers to the
+   PatternLayout class.  
+
+   The category conversion specifier now takes an optional precision
+   modifier allowing the user to control the number of right most
+   components in the category name that will be printed.
+
+   Corrected a bug occuring when the caller file name and line number
+   information were unavilable due to JIT compilation. In that case,
+   the PatternLayout would not properly use the rest of the available
+   location information. [*]
+
+   The above enhancements and bug-fixes originate from comments by
+   Nelson Minar (nelson@monkey.org).
+ 
+ March 23, 2000
+
+ - Release of version 0.8.2.
+  
+ - The SimpleLayout and TTCCLayout are replaced by the PatternLayout
+   in the log4j.jar file to keep its size small. These two layouts are
+   still part of the package.
+  
+ - The PatternLayout class is introduced. This new layout is
+   configurable using a conversion pattern which is parsed at
+   runtime. This allows the user to choose the output layout without
+   writing any code and only at a marginal performance cost compared
+   to the dedicated layouts such as SimpleLayout and TTCCLayout. The
+   PatternLayout also allows the user to determine minimum and maximum
+   field lengths.
+
+   The PatternLayout was written by Jim Cakalic
+   (jim_cakalic@na.biomerieux.com). [*]
+
+ - All internal components now use LoggingEvent instances to specifiy
+   logging information.
+   
+ - Corrected a problem with a missing variable initialization in
+   SyslogAppender. This caused NullPinterException to be thrown when
+   logging exceptions. 
+
+   Added a default constructor to SyslogAppender. The lack of this
+   constructor caused PropertyConfigurator to throw a
+   java.lang.InstantiationException when the appender type was set to
+   be SyslogAppender.
+
+   Thanks to Yves Bossel (ybossel@opengets.cl) for accurately
+   identifying these bugs.
+
+   Modified some other related option handling code in
+   SyslogAppender. [*]
+      
+ - Made NDC.get public access instead of default access. Thanks to
+   Y. J. Chun (monac@softonnet.com) for reporting this problem. [*]
+    
+ - PropertyConfigurator now parses the additivity option for
+   categories. [*]
+ 
+ - Corrected the value of the ADDITIVITY_PREFIX constant to match the
+   documented value, that is "log4j.additivity". [**]
+ 
+ - Corrected a really bad bug where System.out would be closed when
+   PropertyConfigurator.configure was called. Thanks to Christopher
+   Taylor (cstaylor@pacbell.net) for tracking and reporting this bug. [*]
+
+ - The PropertyConfiguator now prints debug messages if the flag
+   "log4j.configDebug" is defined in the configuration
+   file. Previously, only if the system property "log4j.configDebug"
+   was set would debug messages be printed. A question by Shawn
+   Kircher (skircher@vninet.com) induced this change. [*]
+
+ - In AbsoluteTimeDateFormat, DateTimeDateFormat and ISO8601DateFormat
+   the separator between the seconds and milliseconds has been changed
+   to comma from full stop, in order to be compliant with ISO8601's
+   preferred sign. Thanks to Jim Cakalic
+   (jim_cakalic@na.biomerieux.com) for pointing out this discrepancy
+   with the standard. [*]
+
+ - Corrected a bug where RollingFileAppender would not work
+   properly on Windows systems. Thanks to Heinz Richter
+   (heinz.richter@ecmwf.int) for noting this problem.
+       
+ February 19, 2000
+
+ - Release of version 0.8.1.
+ 
+ - Core classes are now independent of the format of the options
+   file. Configurable core classes implement the OptionHandler
+   interface. OptionHandlers allows configurators to learn the
+   relevant option names. The configurator feeds option values to the
+   OptionHandler which configures itself.
+
+   As a result of these changes, the Init class has been broken down
+   to two separate classes: the BasicConfigurator and the
+   PropertiesConfigurator. [**]
+
+   An XML configurator for 0.8.0 has been already written by
+   Christopher Taylor (cstaylor@pacbell.net).
+
+ - Added multiple appender support per category. The appenders follow
+   the category hierarchy, i.e. a child category inherits the
+   appenders of its parents. 
+   
+ - Added an assert() method to the Category class.  Steven Marcus
+   (srnm@awaretechnologies.com) requested this addition. [*]
+ 
+ - Atomatic stack printing is no longer supported. This was an unused
+   and unreliable feature which unnecessarily complicated the
+   code. [*]
+
+ - log4j now emits a single warning message when no appender to write to
+   could be found. This is typically the case when the user forgets
+   to configure the log4j environment.  This change was suggested by
+   Jim Cakalic (jim_cakalic@na.biomerieux.com). [*]
+
+ - RollingFileAppender adds file roll over capability--implemented by
+   Heinz Richter (heinz.richter@ecmwf.int). [*]
+   
+ - Corrected a bug where a java.lang.NoClassDefFoundError would be
+   thrown because com.ibm.log4j.helpers.SyslogTracerPrintWriter was
+   not included in log4j.jar. Thanks to Jim Cakalic (jim_cakalic@na.biomerieux.com)
+   for signaling this bug. [*]
+ 
+ February 9, 2000
+
+ - Release of version 0.8.0.
+
+ - There has been an important API changes. The Log, NOPLog and ILog
+   classes have been removed. Their functionality has been migrated to
+   the Category class. [***]
+
+   In this release, instead of writing
+
+        ILog.debug(CAT, "Some message.");
+
+   one will write
+
+        CAT.debug("Some message.");
+
+   Arndt Schoenewald <ar...@ibm23093i821.mc.schoenewald.de> observed that
+   one could use the Category objects directly for logging. 
+   
+ - It is no longer possible to instantiate Category objects directly.
+   Instead, one would use the factory method
+   Category.getInstance(String name). [***]
+
+   There category instantiation code was moved to CateogryFactory
+   class.  This class has package visibility and remains hidden from
+   the user. 
+
+   This stylistic improvement was suggested by Luke Blanshard
+   (luke@quiq.com).
+
+ - The Init class offers methods to initialize the log4j
+   environment. The Init.flagAsShippedCode method replaces the NOPLog
+   class.
+   
+ - Changes in the documentation to reflect the API changes. 
+
+ - The NDC.cloneStack and inherit methods now tolerate null-stacks. [*]
+    
+
+ January 29, 2000
+
+ - Release of version 0.7.5.
+ 
+ - TTCCLayout now takes a java.text.DateFormat object as a
+   parameter. The task of formatting the date is delegated to this
+   object.
+
+   Added four classes extending the java.text.DateFormat class. These
+   are RelativeTimeDateFormat, AbsoluteTimeDateFormat,
+   DateTimeDateFormat and ISO8601DateFormat classes.
+
+   Thanks to Arndt Schoenewald <ar...@ibm23093i821.mc.schoenewald.de>
+   for suggesting the ISO8601 date format.
+
+   These four classes can be parametrized with a particular
+   TimeZone. The TTCCLayout class now accepts a new configuration file
+   option called "TimeZone".
+
+   These four DateFormats are less malleable than the
+   java.text.SimpleDateFormat but they are also much faster.
+   
+   As a consequence of these changes, the setRelativeTime,
+   setDatePrinting methods in TTCCLayout have been removed along with
+   the associated configuration file options RelativeTime,
+   DatePrinting and TimePrinting. [**]
+
+   The current code is inspired by code contributed by
+   Heinz Richter (heinz.richter@ecmwf.int).
+   
+ - The Log.emerg method has been deprecated. If you use statements of
+   EMERG priority, please use the Log.log form instead. [**]
+ 
+ - Added getDepth and setMaxdepth methods to the NDC class. This makes
+   it easier to manage the nested context depth especially when
+   callees push but forget to pop.
+ 
+ - Moved the documentation in com/ibm/log4j/package.html to
+   com/ibm/log4j/overview.html. Many users were failing to read the
+   com/ibm/log4j/package.html description due to the unfortunate
+   layout of the text. Hopefully more people will read the package
+   overview in its present location.
+
+ - Added the com.ibm.log4j.net package for doing remote logging using
+   TCP sockets. This is still experimental code.
+ 
+ - Added new debug, .., emerg methods that do not require a category
+   parameter. They assume the "root" category, that is the decision to
+   whether print or not is made by comparing the statement's priority
+   with the default priority.  [*]
+    
+January 21, 2000
+
+ - Release of version 0.7.4.
+ 
+ - Added a new ILog.init method accepting an Appender and a
+   configuration file as parameters. 
+ 
+ - FileAppender's setWriter and setFile methods where not instantiating
+   a new tracer.  This caused stack traces to be lost! SyslogAppender
+   had a similar problem. [*]
+
+ - The FileAppender and SyslogAppender where not calling the layout's
+   readConfig method to set layout specific options. Thanks to Heinz
+   Richter (heinz.richter@ecmwf.int) for reporting this bug. [*]
+ 
+ - Corrected a bug in Log.log() method where the appender was always
+   called with Priority.DEBUG.  Thanks to Oliver Boehm
+   (Oliver.Boehm@abaxx.de) for reporting this bug. [*]
+    
+January 14, 2000
+
+ - Release of version 0.7.3.
+
+ - Added Syslog compatibility. One can now choose (at runtime) between
+   remote syslog logging or file logging. [*]
+
+   Syslog logging performance, although not appalling, is significantly
+   slower than file logging.
+
+ - Priority class was enriched with the previously missing priorities
+   NOTICE, ALERT and CRIT. The internal constants were also aligned with
+   the syslog counterparts. [*]
+
+ - Added the Log.log method to support the new priorities. [*]   
+   
+ - TracerPrintWriter is now an independent class instead of being a
+   nested top-level class in Tracer. [*]
+
+ - A number of writers, namely the SyslogWriter, SyslogQuietWriter,
+   SyslogTracerPrintWriter, were added to the helper package. [*]
+
+ - Log.force method was removed. The various Appender.doAppend
+   implementations take over its functionality. [*]
+
+ - FileAppender and SyslogAppender now use QuietWriter. QuietWriter is
+   a FilterWriter which hides exceptions and instead emits a single
+   warning message to System.err. [*]
+     
+ - The layout is now an initialization parameter to the appender
+   type. Previously, the layout and the appender where independent
+   parameters to the Log constructor. [**]
+       
+ - Many small improvements and corrections in the documentation.
+   Syslog related documentation remains sparse.
+	
+ - ILog.init() and ILog.init(String configFile) have been changed to
+   call ILog.init(,,,) with "com.ibm.log4j.Log.class" as the first
+   parameter. This makes it easier for people to get familiar with log4j. [**]
+	
+ - Added missing files to the make directory. These files are useful
+   for those wishing to use the log4j make environment. Thanks to "Lee
+   Hall" <LH...@JavaFoundry.com> for reporting this omission. [*]
+
+   Until recently the make environment failed to compile RMI stubs in
+   a single run. This nagging problem has been corrected thanks to
+   help from Thomas Eirich (IBM Zurich Research Lab).
+	
+January 4, 2000
+
+ - Release of version 0.7.2.
+ 
+ - Some users have been rightly complaining about the verbosity
+   TTCCLayout's date output. The full date output is now shortened to
+   "dd MMM YYYY HH:mm:ss.SSS" for example, "06 Nov 1994 08:49:37.459"
+   In addition, users may now choose to print only time information,
+   as in "08:49:37.459". [*]
+	
+ - The package now uses Writer instead of OutputStream as its output
+   target. This makes the log4j code smaller and easier to
+   understand at the cost of a slight performance degradation. As a
+   result of this change a few method names in FileAppender class were
+   changed. [**]
+
+ - Preliminary experiments with SyslogAppedner and SyslogLayout show
+   that syslog compatibility is not far away. The difficultly is
+   adding syslog compatibility without making radical changes to the
+   current log4j architecture.
+
+ - Corrected a bug in the NOPLog.createInstance method which always
+   created a Log singleton even if the system property "log4j.logType"
+   was set to NOPLog.  Thanks to Robert Gottofrey
+   (Robert.Gottofrey@wdr.com) for reporting this bug and the
+   associated test case.
+	
+ - Removed the inconsistent "Layout" configuration option in
+   Log.readConfig().  This change should be transparent to most
+   users. [*/**]
+	
+December 20, 1999
+
+ - Release of version 0.7.1.
+ 
+ - The LogCreationManager class has been removed. Its functionality
+   has been transfered to the createInstance and getInstance methods
+   in the Log and NOPLog classes. The new way of creating instances is
+   both simpler and less error prone although just as flexible.  [**]
+
+   As a result of these changes, the init family of methods in the
+   ILog class have been adjusted to the new way of creating the log
+   singleton.
+   
+ - The Appender interface has been introduced. The method of writing a
+   log statement into an output stream can now be varied by using a
+   different Appender. The new FileAppender offers the same
+   functionality that was previously part of the Log class. [**]
+
+ - Changed the time format used in TTCCLayout to be of the form "Day,
+   dd MMM YYYY HH:mm:ss.SSS GMT" for example, "Sun, 06 Nov 1994
+   22:49:37.459 GMT". This format is almost the same as the format
+   specified in RFC 1123 and also the format recommended in RFC
+   2616. The only difference is the additional milliseconds
+   information. [*]
+	
+ - The layout specific options were not read from the configuration
+   file due to a missing instruction. Many thanks to Vikram Sridharan
+   (Vikram.Sridharan@alysis.com) to patiently pointing out this
+   omission to an unbelieving maintainer. [*]
+
+December 16, 1999
+
+ - Release of version 0.7.0.
+
+ - Version 0.7.0 and above will be distributed under the IBM Public
+   License (IPL). The IPL is an approved open source license (see
+   http://www.opensource.org/licenses/ for a list). It grants similar
+   rights to the previous ALPHAWORKS license agreement, in particular,
+   the right to redistribute and to modify the package.
+
+ - The Log class can now be parameterized with a Layout object.
+   Layouts determine the format of what is printed, where as the Log
+   class decides when to print and to where. [**]
+
+   As a result of this modularization, the CGULog and NOPCGULog
+   classes no longer exists. CGULog class has been replaced with the
+   TTCCLayout (Time Thread Context Category). This should make it
+   easier to create new log output formats.
+   
+   Some time in the near future, the Log class will be further broken
+   down to allow different strategies for writing to output streams.
+
+ - Renamed com.ibm.util.log hierarchy to to com.ibm.log4j. I wanted to
+   do this for some time. I feel release 0.7.0 was the last
+   opportunity to do so. I am sorry for the the trouble caused by this
+   change. [**/***]
+
+ - New NDC class. This class implements nested diagnostic contexts as
+   suggested by Neil Harrison in the article "Patterns for Logging
+   Diagnostic Messages" part of the book "Pattern Languages of Program
+   Design 3" edited by Martin et al. Nested diagnostic contexts is a
+   nifty feature that was missing up to now. [*]
+
+   The StressNDC test class seems to break JDK 1.2.2 beta on AIX. On
+   Linux and NT using sun's JDK 1.2.2 it seem to work OK. In any case,
+   tests done with StressNDC and associated perl script seem to
+   indicate that the NDC class is bug-free.
+
+ - Corrected a date formatting bug in CGULog class where on some
+   environments the wrong month was printed. Thanks to Christopher
+   Williams (Christopher_Williams@mail.northgrum.com) for signaling
+   this bug.  Also changed the month format from a number to a three
+   letter abbreviation such as "Jan", "Feb", ..., "Dec". The new
+   format is unambiguous regardless of local date format. [*]
+
+December 8, 1999
+
+ - Release of version 0.6.2.
+ 	
+ - Clearer documentation with still much room for improvement.
+ 
+ - Corrected a bug in the Tracer class which always used the Unix line
+   separator instead of the system specific separator. Thanks to
+   Vikram Sridharan (Vikram.Sridharan@alysis.com) for singaling this
+   bug. [*]
+
+ - Corrected a runaway comment which gulped the CGULog.readConfig
+   method. [*]
+
+ - Added the init family of methods to the ILog class to ease the
+   setup of a basic logging environment. Thanks to Mark Donszelmann
+   (Mark.Donszelmann@cern.ch) for this enhancement. [*]
+  
+ - Just an hour after releasing version 0.6.1 detected and corrected a
+   bug where the Tracer class would correctly print Exception stack
+   trace but not the type of the Exception.  Replaced the
+   distribution on www.zurich.ibm.com without changing the version
+   number. I hope nobody is using the intermediary (and buggy) release
+   of 0.6.1. [*]
+
+November 16, 1999
+	
+ - Release of log4j version 0.6.1.
+
+ - Better documentation with still much room for improvement.
+	 
+ - For consistence sake, added setDefaultPriority and
+   getDefaultPriority methods to the Category class and deprecated
+   setDefaultPriority in the Log.class. [**]
+
+ - Corrected a major bug where if two categories were homonyms the
+   second instance would not be properly initialized.
+
+ - Increased the speed of Exception logging from about 4000
+   microseconds to about 1000. It seems that for some people Exception
+   logging is performance critical. Improved implementation is a
+   variant of Nocolai's (XNH@crisplant.com) implementation. [*]
+
+November 9, 1999
+
+ - Release of log4j 0.6.0 with incomplete documentation.
+
+ - Added a stress test program to debug the new Category class. It
+   turns out that the test program was as hard to get right as the
+   Category class. Given the favorable results of the stress test I am
+   quite confident that the new class is now bug free. This assumption
+   has been proven to be wrong. See above.
+	
+ - Created a new class called Category to manipulate categories
+   instead of plain Strings. The new class is just as easy to use.
+   However, the evaluation of whether to log or not to log is at least
+   10 times faster. The NOP class performance remain unaffected by the
+   change. (You can't improve on the performance of an empty function
+   call.) 
+
+   Many thanks to Alex Blewitt "Alex.Blewitt@ioshq.com" for his
+   valuable comments. He was the first to observe that finding Strings
+   in a hash table was an expensive operation.
+		    
+   This change will require some recoding on your part. See the FAQ
+   for more details. [***]
+
+ - Modified the force in Log and CGULog method to use a byte[] buffer
+   instead of a StringBuffer. The old code was clearer but the new one
+   is at least 25% faster. [*]
+
+ - Added regression testing.
+   
+ - We now enforce a policy where the OutputStream set by
+   setOutputStream is a user managed resource whereas the OutputStream
+   opened using setLogFile is the Log class' responsibility.
+
+   The setLogFile method now closes any previous OutputStream if only
+   if opened through setLogFile. If the previous OutputStream was
+   opened by the user and set through setOutputStream the previous
+   OutputStream is untouched.
+
+   Similarly, setOutputStream will close any previous OutputStream if
+   and only if it was opened using setLogFile.
+
+ - Added a new method logOutputStreamExists to the Log class allowing
+   the programmer to check if there is already an opened stream before
+   trying to set a new one.  A stream can be opened as a byproduct of
+   reading the configuration file.
+	
+ - Changed the behavior of the (private) Log.Append method in case of
+   failure to write to the OutputStream.
+
+   Previously, in case of failure, we reverted to System.err.  Now, we
+   emit a warning message and discard all future log messages.  The
+   new behavior is consistent with our current unreliable logging
+   semantics.  The change prevents an otherwise functional program
+   from failing because the terminal is flooded with logging messages.
+
+ - Renamed the iLog to ILog to remain consistent with our class naming
+   scheme. The initial intention was to add ILog and deprecate
+   iLog. However, I am running CVS on a fat16 partition, causing
+   serious problems when files differ only in case.
+
+ - Corrected a bug where the LogFileName was not remembered. Thanks to
+   Jens for signaling this bug.
+
+October 28, 1999	
+
+ - Release of log4j v0.5a
+
+ - Now the programmer can choose to truncate the log file instead of
+   always appending to it.  This functionality was first requested and
+   intially implemented by "Jens Uwe Pipka" jens.pipka@gmx.de. [*]
+
+ - setLogFile now opens the requested file instead of having the
+   Append function open it later. Cleaned up some related code in the
+   Append function.  Although nobody has requested it, there is still
+   no method to close the log file. This is harder to implement
+   reliably than it sounds. [*] 
+
+ - Simplified setLogOutputStream so that it does no longer return the
+   previously set OutputStream. [*]
+	
+October 27, 1999	
+
+ - Released log4j v0.5
+
+ - Joe Walker (joe@eireneh.com) observed that the
+   LogCreationManager.getSingleton mechanism was cumbersome.  There is
+   now a new class iLog (indirect Log) which hides the need to call
+   getSingleton. Performance testing on my 233Mhz Thinkpad shows that
+   this indirection has small performance impact on non-logged calls
+   in the order of 40 nanoseconds. The impact on logged calls is
+   negligible. [*]
+	
+ - Added a jar file to the distribution. The jar file contains only
+   the files you would need to use log but not other classes needed
+   for testing nor examples.
+	
+ - Corrected a bug where CGUNOPLog was not integrated to the Makefile.
+	
+ - Added new public methods isDebugEnabled and isInfoEnabled to allow
+   programmers to check whether a debug/info statement will be logged
+   without incurring the cost of message parameter construction. This
+   addition was suggested by Luke Blanshard Luke@quiq.com. [*]
+
+ - Renamed the private method evaluate to isEnabled. Also made it
+   final with no apparent speed gains.  In addition, made the
+   Log.force method public. [*]
+	
+ - New syntactic sugar debug, ..., emerg, methods to log objects. [*]
+
+ - Modified the interface to deal with Throwables and not just
+   Exceptions.  My thanks to Luke Blanshard for signaling this "bug". [*]
+		
+ - Added more tests to the LogPerformance class. In particular, to
+   test the influence of indirect debug calls.
+
+ - Added a "make" mini-tutorial for those who want to modify the code.
+	
+ - License updated to standard alphaWorks license allowing
+   modifications to source code. However, this license explicitly
+   requires that modifications be communicated back to alphaWorks.
+
+October 15, 1999
+
+ - Initial availability on alphaWorks.
+		
+Refer to the FAQ for the lineage of the package.
+
+
diff --git a/trunk/docs/TROUBLESHOOT.html b/trunk/docs/TROUBLESHOOT.html
new file mode 100644
index 0000000..82590c2
--- /dev/null
+++ b/trunk/docs/TROUBLESHOOT.html
@@ -0,0 +1,301 @@
+<html>
+<head>
+<title>Troubleshooting log4j</title>
+</head> 
+<body bgcolor=#FFFFFF>
+ 
+    <h1 align=center>Log4j troubleshooting</h1>
+
+    <h2 align=center>Ceki G&uuml;lc&uuml; Paul Glezen
+      <br/>February 2002
+    </h2>
+ 
+    <hr/>
+
+      <p>Here is a list of commonly encountered problems when using log4j:</p>
+	
+      <ul> 
+	
+	<li><p><a href=#noAppenders>log4j tells me to initialize
+	      properly.</a></p>
+	</li>
+
+	<li><p><a href=#duplicates>Duplicates in log4j output.</a></p>
+	</li>
+	<li><p><a href=#space>Options are not parsed correctly.</a></p>
+	</li>
+	<li><p><a href=#jit>Caller location information is printed as a "?"
+	      character.</a>
+	  </p>
+	</li>
+
+	<li><p><a href=#cce>ClassCastException when instantiating a Category subclasses.</a>
+	  </p>
+	</li>
+
+
+	<li><p><a href="#notfound">My EJB-Servlet-JSP says log4j class
+        not found or not defined.</a> </a></p>
+        </li>
+	
+	<li><p><a href=#syslogd>I cannot connect to syslogd under linux.</a>
+	  </p></li>
+
+	<li><p><a href="#nosuchpropperty">log4j:WARN No such property
+	      [xyz] in some.appender.or.layout</a>
+	  </p>
+	</li>    
+      </ul>
+
+      <hr>
+
+	<p><a name="noAppenders"></a><h4>log4j tells me to initialize properly.</h4>
+
+	  Logging output is written to a target by using an appender. If no
+	  appenders are attached to a category nor to any of its ancestors, you
+	  will get the following message when trying to log:
+	</p>
+
+<pre>
+log4j: No appenders could be found for category (some.category.name).
+log4j: Please initialize the log4j system properly.
+</pre>
+
+	<p><em>Log4j does not have a default logging target.</em>
+	  It is the user's responsibility to ensure that all
+	  categories can inherit an appender.  This can be easily
+	  achieved by attaching an appender to the root category.</p>
+
+
+	<p><a name=duplicates></a><h3>Duplicates in log4j output.</h3></p>
+
+	<p>The reason for observing duplicates in log4j output is
+	  either due to having added the same appender multiple times
+	  to the same category (typically root) or having added the
+	  same appender to different categories ignoring the fact that
+	  appenders are inherited cumulatively.</p>
+
+	<p>log4j does not eliminate appender duplicates. In other
+	  words, if you add the same appender to a category <i>n</i>
+	  times, that appender will be invoked <i>n</i> times to
+	  append to its target. </p>
+
+	<p>A slightly different cause is adding different appenders
+	  all sharing the same underlying output target to some
+	  category. In the most common occurrence of this phenomenon,
+	  the BasicConfigurator.configure() method is invoked multiple
+	  times. Each time it is invoked, this method adds an appender
+	  with a <code>System.out</code> target to the root
+	  category. </p>
+
+	<p>One other common mistake is to forget that appenders are
+	  inherited cumulatively from the hierarchy. For example, if
+	  you add an appender, say <code>A</code>, to the root
+	  category, all other categories will inherit <code>A</code>
+	  as an appender. Thus, if you add <code>A</code> to a
+	  category, say <code>C</code>, then an enabled statement of
+	  category <code>C</code>, will print to <code>A</code> twice,
+	  once because <code>A</code> is in root and once because it
+	  is in <code>C</code>. </p>
+
+	<p><a name=space></a><h3>Options are not parsed correctly.</h3>
+
+	  <p>The PropertyConfigurator relies on
+	    <code>java.util.Properties</code> class to read in the
+	    configuration file. This class preserves spaces in
+	    options. For example,</p>
+
+<pre>
+fruit=orange  
+</pre>
+is returned as an option having the key <code>"fruit"</code> and the
+	  value <code>"orange "</code>.</p>
+
+	<p>The spaces in the value, i.e. <code>"orange "</code>, are due to
+	  invisible spaces at the end of the example shown above. Thus, some of
+	  the options might not be interpreted correctly due to trailing
+	  spaces. </p>
+
+	<p><a name=jit></a><h3>Caller location information is printed as a "?"
+	    character.</h3>
+	  
+	  Location information is extracted automatically by the PatternLayout
+	  conversion patterns %C, %F, %M and %L. However, some just-in-time
+	  (JIT) compilers make it impossible to extract location information. It
+	  is also possible that the compiler that generated the byte code may
+	  have omitted the LineNumber table as is done by -O option of javac
+	  and jikes. </p>
+
+	<p>You can remedy this problem by disabling the JIT compiler and by
+	  compiling the code without the -O option.</p>
+	
+	<p><b>In wrappers or subclasses of Category </b>
+
+	  <p>Wrappers or subclasses of <code>Category</code> need supply their
+	    fully qualified class name to the <code>Category.log</code> method or
+to <code>Category.forcedLog</code> methods so that the caller location
+information can be extracted correctly.</p>
+
+	  <p>This approach will work correctly in all cases except if
+	    the class invoking the extended category instance has the
+	    same prefix as the extended category class. For example,
+	    calling an instance of <code>com.foo.BarCategory</code>
+	    from the <code>com.foo.BarCategoryTest</code> class will
+	    not yield the correct caller information. To circumvent
+	    this "bug", either perform the tests from a class with a
+	    different name or add a dot to the fully qualified name of
+	    the extending class that you supply to
+	    <code>Category.log</code> to
+	    <code>Category.forcedLog</code> methods. For the
+	    <code>com.foo.BarCategory</code> example, supply the
+	    string <code>"com.foo.BarCategory."</code>.</p>
+
+
+	  <p><a name=cce><h3><code>ClassCastException</code> when
+instantiating a <code>Category</code> subclasses.</a></h3>
+
+	    <p>This exception is thrown because log4j does not support
+homonyms. For example, the following will systematically throw a
+<code>ClassCastException</code></p>
+
+<pre>
+  Category c1 = Category.getInstance("bad");
+  MyCategory c2 = (MyCategory) MyCategory.getInstance("bad");
+</pre>
+
+where <code>MyCategory</code> is a subclass of
+<code>Category</code>. The problem occurs because the second
+<code>getInstance</code> invocation will retrieve the category created
+in the fist invocation. This instance is a <code>Category</code>
+object and cannot be cast to <code>MyCategory</code>.</p>
+	  
+	  <p>By default, the <code>PropertyConfigurator</code> will
+	    create and configure
+	    <code>org.apache.log4j.Category</code> objects. Thus, if
+	    you try to instantiate a category subclass for an already
+	    existing category, and try to cast it to the subclass
+	    type, you will systematically get a
+	    <code>ClassCastException</code>.</p>
+
+	  <p>To address this problem, the
+	    <code>PropertyConfigurator</code> admits the
+	    <code>log4j.categoryFactory</code> key. The value of this
+	    key will be used as the factory to invoke when
+	    instantiating Category objects.
+
+	    <p>The <code>DOMConfigurator</code> has a finer grain
+	      method for setting the class of the category object to instantiate.
+
+
+<!-- <a name="#levelCast"><h3>Compilation errors when using <code>setLevel(org.apache.log4j.Level)</code> from the Category class.</h3>
+
+  <p>If you try to call the setLevel method with one of the built in
+  levels, the java compiler with complain:
+
+<pre>
+  [javac] setLevel(org.apache.log4j.Level) in org.apache.log4j.Category cannot be applied to (org.apache.log4j.Priority)
+  [javac]         logger.setLevel(Level.DEBUG);
+</pre>
+where logger is a variable of type Logger.
+
+   <p>Casting any of the Level.DEBUG, Level.INFO, Level.WARN,
+Level.ERROR, Level.FATAL arguments to Level will make the compiler
+happy.  As in <pre> logger.setLevel(<b>(Level)</b> Level.DEBUG);
+</pre>
+
+			  <p>This cast is always safe because log4j 1.2 will never produce
+anything but <code>Level</code> objects, never <code>Priority</code>
+objects. Surprisingly enough this cast was not necessary in log4j 1.2
+alpha. It is required in 1.2 beta and later to ensure runtime
+compatibility with log4j 1.1.3.</p>
+
+-->
+
+<p><a name=notfound><h3>Log4j class not found/defined</h3>
+
+<p>Naturally you should check the classpath.  But you should also 
+be aware of the presence of multiple classloaders in the JVM:
+<p> <ol>
+<li>the bootstrap classloader
+<li>the extension classloader
+<li>the application classloader
+</ol>
+<p>If you place log4j.jar in the <code>jre/lib/ext</code> directory
+but place user-defined extensions to log4j in the application 
+classloader classpath, log4j configurators will not find them.
+
+<p>Servlet, JSP and EJB containers inside of application servers
+usually have their own special classloaders in addition to the 
+three mentioned above.  While this provides for a greater
+degree of separation for different webapps, EJB containers and the
+application server runtime itself, it can provide headaches to the
+uninitiated.
+
+<p>Classloaders are usually hierarchically related.  The bootstrap
+loader forms the root with the extension loader as its child.  The
+application loader is the child of the extension loader and it's
+this "app loader" that we use by default when we write standalone
+Java programs.
+
+<p>Upon receiving a class load request, the classloader usually 
+delegates it to the parent before attempting to service the request.
+This allows the bootstrap and extension loaders to deliver any classes
+that are part of the JDK or its extensions.  Only after this delegation
+fails will the classloader attempt to find the class itself.  Note that
+classloaders do not delegate requests to children.
+
+<p>Application servers often use the application loader for its runtime
+classes and create separate classloaders for its webapp and EJB
+containers.  These additional classloaders may descend directly
+from the app server's runtime classloader.  If log4j is placed in the
+classpath of a webapp classloader, another webapp classloader will not
+necessarily see it.  EJBs wouldn't see it either.  If log4j is intended
+to be made available to all objects participating in the app server, it
+should be included in the classpath of a classloader high enough in the
+classloader hierarchy to be seen by all classloaders.
+
+<p>A good article on classloaders with examples using IBM's WebSphere
+application server can be found 
+<a href="http://www7.software.ibm.com/vadd-bin/ftpdl?1/vadc/wsdd/pdf/gisell/UnderstandingWebSphereClassLoaders.pdf">here</a> 
+in PDF format.
+
+<h3><p><a name="syslogd">I cannot log to syslogd under linux.</a></h3>
+
+If you are trying to log to the Unix syslog under Linux using the <a
+href="api/org/apache/log4j/net/SyslogAppender.html">SyslogAppender</a>,
+then the Linux syslog daemon must be configured to accept log input
+from the network.  Otherwise, you will get an <code>IOException:
+connection refused</code>.
+
+<p>This can be done by adding the <code>-r</code> option when starting
+the daemon. Or more precisely:
+
+<ol>
+<li>Login as the <code>root</code> user
+<li>Edit file <code>/etc/rc/init.d/syslog</code>
+<pre>
+case "$1" in
+  start)
+        echo -n "Starting system logger: "
+        daemon syslogd -r
+</pre>
+
+<li><code>/etc/rc/init.d/syslog restart</code>
+
+</ol>
+
+<p><a name=#nosuchpropperty><h3>log4j:WARN No such property [xyz] in some.appender.or.layout</h3>
+
+<p>If during log4j configuration you get a warning about an inexistent
+property, then you have probably misspelled a property or entered a
+truly unrecognized property for the component you are trying to
+configure in the configuration file.
+
+<p>Log4j version 1.0 did not complain about unrecognized properties
+whereas log4j version 1.1 and later do complain.
+
+
+
+
+</body>
+</html>
diff --git a/trunk/docs/chainsaw-1.jpg b/trunk/docs/chainsaw-1.jpg
new file mode 100644
index 0000000..1202ec6
Binary files /dev/null and b/trunk/docs/chainsaw-1.jpg differ
diff --git a/trunk/docs/chainsaw.html b/trunk/docs/chainsaw.html
new file mode 100644
index 0000000..0ada695
--- /dev/null
+++ b/trunk/docs/chainsaw.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Paul Smith">
+            <meta name="email" value="psmith@apache.org">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Chainsaw v2 Documentation</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>Chainsaw v2 - Introduction/Table of Contents</strong></h1>
+                                    <p>Welcome to the home of Chainsaw v2!</p>
+                                                <p>Chainsaw v2 is a companion application to Log4j written by members of the Log4j development
+      community. Like a number of Open Source
+      projects, this new version was built upon inspirations, ideas and creations of others. 
+      Chainsaw v2 has it's roots from the original Chainsaw utility written by Oliver Burn, 
+      and with inspiration from the Log Factor 5 utility contributed by ThoughtWorks Inc. </p>
+                                                                           <h1>Download</strong></h1>
+                                    <p>
+ 	<ul>
+ 		<li><a href="http://logging.apache.org/log4j/docs/webstart/chainsaw/chainsawWebStart.jnlp">Java Web Start <img alt="WebStart distribution" src="http://java.sun.com/products/jfc/tsc/sightings/images/webstart.small.jpg" border="0" /></a></li>
+
+ 		<li><a href="http://logging.apache.org/log4j/docs/webstart/chainsaw/chainsaw.dmg">OS X 'native' distribution</a> <font size="-1">(uses Java still, but looks like a real OSX application)</font></li>
+ 		<li><a href="http://logging.apache.org/log4j/docs/webstart/chainsaw/chainsaw-bundle.zip">Unix/Dos standalone</a> <font size="-1">(.bat/.sh)</font></li>
+ 		 <p />	<ul>
+ 				<li><font size="-1"><a href="#VFSNotes"><b>Important Distribution notes!!/Using VFS with Chainsaw</b></a></font></li>
+ 			</ul>
+ 	</ul>
+ </p>
+                                                                           <h1>Table of Contents</strong></h1>
+                                    <ul>
+     <li><a href="#WhatIsIt">So what is it really?</a></li>
+     <li><a href="#QuickTour">Quick Tour of Chainsaw features</a></li>
+     <li><a href="#ProjectStatus">Project Status/Support/Feedback</a></li>
+     <li><a href="#Installation">Installation</a></li>
+     <li><a href="#GettingStarted">Getting Started</a></li>
+     <li><a href="#Tutorial">Tutorial and User Manual</a></li>
+     <!--<li><a href="#Screenshots">Screenshots</a></li>-->
+     </ul>
+                                                                           <h1>So what is it really?</strong></h1>
+                                    <p><a name="WhatIsIt">�</a>It's a GUI-based Log viewer. A picture tells a thousand words...</p>
+                                                <p><a href="images/chainsaw-fullscreen.jpg" target="_new"><img src="images/chainsaw-fullscreen-small.jpg" /></a></p>
+                                                <p><a href="images/chainsaw-fullscreen.jpg" target="_new">[zoom image]</a></p>
+                                                <p>These screen shots were taken on Windows 2000, running Sun JDK 1.4.2.</p>
+                                                <p>Rather than rely on a combination of tail/grep/vi or equivalent to view/query/trace-through
+      a huge trail of logging events, you can use Chainsaw.  Chainsaw can read log files formatted in Log4j's XMLLayout, receive
+      events from remote locations, read events from a DB, it can even work with the JDK 1.4 logging events.</p>
+                                                                           <h1>Quick Tour of Chainsaw features</strong></h1>
+                                    <p><a name="QuickTour">�</a> Heres just a <b>brief</b> run down of some of the features of Chainsaw v2:</p>
+                                                <ul>
+       <li><b>View remote events</b> - Remote events are "received" by Chainsaw using Log4j 1.3's new Receiver concept.</li>
+       <li><b>Saved Preferences</b> - You can fully customize each Tab the way you want it, and it will restore it's state the next time.</li>
+
+       <li><b>Responsive</b> - When events are screaming in, you don't want the GUI to meltdown.  You can control 
+       how responsive the GUI is and determine the frequency of updates.</li>
+       <li><b>Tabs/Docking</b> - Chainsaw routes separate applications/remote hosts' events to a unique Tab within the GUI.  
+       These tabs can be undocked from the main window.  Using these features you can manage multiple application logs using the one GUI.</li>
+       <li><b>Coloring</b> - You can specify your own rules to color each event row depending on the attributes of a LoggingEvent to 
+       help you locate important events.</li>
+       <li><b>Dynamic and powerful filtering</b> - Helps you locate stuff. There's support for quick-and-dirty filtering, right through to advanced expression-based filtering (e.g. <code> "LOGGER == 'com.mycompany' &amp;&amp; LEVEL == ERROR" </code>).</li>
+       <li><b>Cyclic</b> - A tab view can support a Cyclic-based model, which constrains it's view to the last
+       X events, ensuring you don't hog memory.  This is great for monitoring live applications.</li>
+       <li><b>Built-in documentation and tutorial</b> - HTML-based documentation included in the package.</li>
+      </ul>
+                                                                           <h1>Tutorial and User Manual</strong></h1>
+                                    <p><a name="ExtraDocs">�</a>Chainsaw already includes help with
+      with a Quick Reference and a Tutorial to get you started, all viewable from <b>within the GUI</b>!. A User Manual will be made available around release time. </p>
+                                                                           <h1>Distribution Notes</strong></h1>
+                                    <p><a name="VFSNotes" />Due to Java Web Start's classloading rules, it is impossible to ship the <a href="http://jakarta.apache.org/commons/vfs">Jakarta Commons VFS</a> extension to Chainsaw.
+		Several VFS filestore implementation jars cannot be shipped with Chainsaw because of licensing issues.  The log4j dev team has chosen to not distribute VFS
+		with the Web Start version, however you can follow these steps to enable the VFS components inside Chainsaw.
+		<ol>
+			<li>Download the <a href="http://logging.apache.org/log4j/docs/webstart/chainsaw/log4j-chainsaw-vfs.jar">VFS extension</a> to Chainsaw</li>
+			<li>Download <a href="http://cvs.apache.org/builds/jakarta-commons/nightly/commons-vfs/">VFS</a></li>
+			<li>Download <a href="http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi">Commons Logging</a> Jars</li>
+			<li>Download the VFS <a href="http://jakarta.apache.org/commons/vfs/download.html">filestore implementation jars</a> you wish to use</li>
+			<li>Place all these jars in your .chainsaw/plugins directory (the .chainsaw directory is in your home directory)</li>
+			<li>Start Chainsaw, which should now recognize the existence of VFS components and allow you to use such things as the VFSLogFilePatternReceiver</li>
+		</ol>
+		</p>
+                                                <p>The Unix/DOS batch file and OSX distribution already include the base VFS component jars, so you just need to download the filestore implementation jars and place them 
+		in the plugins directory.</p>
+                                             
+            
+  
+                                                          <hr/>
+
+  
+                                                                                                    
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/codes.html b/trunk/docs/codes.html
new file mode 100644
index 0000000..5819ee4
--- /dev/null
+++ b/trunk/docs/codes.html
@@ -0,0 +1,280 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki G�lc�">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Log4j error codes</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                       <center>
+      <h2>Log4j error messages and their meanings</h2>
+      <h3>Ceki  G�lc� <br />
+      November 2004, last updated on December 17th, 2004</h3>
+    </center>
+                                                                                                                                                                                         
+            
+  
+                                        <hr/>
+
+  
+                                                        <div class="big">
+        <a name="log4j_dtd">
+         <table>
+            <tr>
+             <td valign="top"><b>Message:</b></td>
+             <td class="msg_title">The 'log4j.dtd' is no longer used nor needed.</td>
+            </tr>
+         </table> 
+        </a>
+      </div>
+      <div class="msg_meaning">
+        
+        <p>Given syntactical flexiblilty that
+        <code>JoranConfigrator</code> supports, it is no longer
+        possible to express this syntatical range with a DTD. Thus,
+        new log4j configuration files in XML should follow the general
+        template.
+        </p>
+
+        <p class="red big">Good:</p>
+
+        <pre>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+<b>&lt;!DOCTYPE configuration&gt;</b>
+
+&lt;configuration xmlns='http://logging.apache.org/'&gt;
+  ...
+&lt;/configuration&gt;
+        </pre>
+
+        <p>However, <code>JoranConfigurator</code> will continue to
+        parse your old XML configuration files which previously
+        required a reference to <code>log4j.dtd</code>. Thus, altough
+        deprecated, the following form will continue to be parsed
+        correctly.
+        </p>
+
+        <p class="red big">Deprecated:</p>
+
+          <pre>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+<b>&lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt;</b>
+
+&lt;log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'&gt;
+  ...
+&lt;/log4j:configuration&gt;
+        </pre>
+     
+
+        <p>Using this deprecated form will generate the above mentioned
+        error message along with an error from the XML parser.
+        </p>
+
+      
+      </div>
+                <div class="big">
+        <a name="tbr_fnp_not_set">
+         <table>
+            <tr>
+             <td valign="top"><b>Message:</b></td>
+             <td class="msg_title">The <b>FileNamePattern</b> option must be set before
+             using <code>TimeBasedRollingPolicy</code> or
+             <code>FixedWindowRollingPolicy</code>.
+      </td>
+            </tr>
+         </table> 
+        </a>
+      </div>
+      <div class="msg_meaning">
+        
+        <p>The <b>FileNamePattern</b> option for both
+        <code>TimeBasedRollingPolicy</code> and
+        <code>FixedWindowRollingPolicy</code> is mandatory.
+        </p>
+      
+      </div>
+                <div class="big">
+        <a name="appender_order">
+         <table>
+            <tr>
+             <td valign="top"><b>Message:</b></td>
+             <td class="msg_title">Could not find an appender named [XYZ]. Did you define it below in the config file?</td>
+            </tr>
+         </table> 
+        </a>
+      </div>
+      <div class="msg_meaning">
+        
+        <p>Whereas the order of declatation of appenders did not
+        matter in log4j 1.2, in log4j version 1.3 and later, any
+        appender referenced at a given point must have been already
+        declared above that point. In practice though, only
+        configuration files declaring an <code>AsyncAppender</code>
+        may be affected by this change and only if the appenders
+        embeded in th <code>AsyncAppender</code> are declared below it
+        instead of being declared above it.
+        </p>
+
+        <p>For example, the following config file will no longer work.</p>
+
+        <p class="red big">Bad:</p>
+
+        <pre class="source">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+&lt;!DOCTYPE log4j:configuration&gt;
+
+&lt;log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'&gt;
+
+  &lt;appender name="<b class="red">ASYNC</b>" class="org.apache.log4j.AsyncAppender"&gt;
+    &lt;appender-ref ref="FILE" /&gt;
+  &lt;/appender&gt;
+
+   &lt;appender name="<b>FILE</b>" class="org.apache.log4j.FileAppender"&gt;
+    &lt;param name="File" value="myapp.log"/&gt;
+    ...
+  &lt;/appender&gt;
+
+  &lt;root&gt;
+    &lt;level value ="debug" /&gt;
+    &lt;appender-ref ref="ASYNC" /&gt;
+  &lt;/root&gt;
+
+&lt;/log4j:configuration&gt;
+        </pre>
+
+        <p>It should be changed to the following form.</p>
+
+        <p class="red big">Good:</p>
+
+        <pre class="source">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+&lt;!DOCTYPE configuration&gt;
+
+&lt;configuration xmlns='http://logging.apache.org/'&gt;
+
+   &lt;appender name="<b class="red">FILE</b>" class="org.apache.log4j.FileAppender"&gt;
+     &lt;param name="File" value="myapp.log"/&gt;
+      ...
+   &lt;/appender&gt;
+
+  &lt;appender name="<b>ASYNC</b>" class="org.apache.log4j.AsyncAppender"&gt;
+    &lt;appender-ref ref="FILE" /&gt;
+  &lt;/appender&gt;
+
+  &lt;root&gt;
+    &lt;level value ="debug" /&gt;
+    &lt;appender-ref ref="ASYNC" /&gt;
+  &lt;/root&gt;
+&lt;/configuration&gt;
+        </pre>
+
+
+      
+      </div>
+      
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/contributors.html b/trunk/docs/contributors.html
new file mode 100644
index 0000000..06ca300
--- /dev/null
+++ b/trunk/docs/contributors.html
@@ -0,0 +1,269 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki G�lc�">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Log4j Contributors</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>Log4j contributors</strong></h1>
+                                    <p>Log4j is the result of contributions from several dozen
+	developers and hundreds of users across the globe. Some of the
+	more prominent contributors are listed below in alphabetical
+	order.
+      </p>
+                                                <ul>
+
+    <!-- ======================================== -->
+    <!-- LISTED IN ALPHABETICAL ORDER (last name) -->
+    <!-- ======================================== -->
+    
+	<li><b>Mathias Bogaert</b> 
+
+	  <p>While not lurking on <a href="http://www.theserverside.com/">the serverside</a>,
+	  Mathias mends the log4j documentation.</p>
+	</li>
+
+	<li><b>James P. Cakalic</b>
+	  <p>Jim is the original author of the PatternLayout and the
+	  NTEventLogAppender.
+	  </p>
+	</li>
+
+	<li><b>Paul Glezen</b> 
+
+	  <p>Paul maintains the log4j extension manual while he is not
+	  consulting for IBM.
+	  </p>
+	</li>
+
+	<li><b>Ceki G�lc�</b> 
+
+          <table>
+          <tr><td> <p>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 <a href="http://www.qos.ch">IT services
+          company</a>.</p></td> 
+          <td><img src="images/ceki-72x101.gif" /></td>
+         </tr>
+         </table>
+	</li>
+
+    <li><b>Jacob Kjome</b> 
+
+        <p>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. :-)
+        </p>
+    </li>
+
+
+	<li><b>Anders Kristensen</b> 
+
+	  <p>Contributor of many enhancements, Anders takes a keen
+	  interest in log4j and all things Java, OO, and XML. He is
+	  currently specification lead for JSR 116, the SIP Servlet
+	  expert group.  
+	  </p>	  
+	</li>
+	
+	<li><b>Jim Moore</b> 
+	  <p>Jim is often seen answering tough question from log4j
+	    users. 
+	  </p>
+	</li>
+
+    <li><b>Yoav Shapira</b> 
+      <table>
+        <tr><td>
+          <p>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.
+              </p>
+        </td>
+        <td><img align="right" src="images/yshapira.bmp" /></td>
+       </tr>
+     </table>
+   </li>
+
+	<li><b>Jon Skeet</b> 
+
+	  <p>Jon is a software developer in his mid-twenties living in
+	  the UK. He is a Java enthusiast and very active participant
+	  in the comp.lang.java.* newsgroups as well as a moderator
+	  for the log4j mailing lists. He is a committer for the Ant
+	  project, involved (when time permits!) in tidying up the
+	  code documentation.
+	  </p>
+	</li>
+
+	<li><b>Paul Smith</b> 
+      <table>
+        <tr><td>
+        <p>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.
+	    </p></td>
+        <td><img align="right" src="images/psmith.jpg" /></td>
+       </tr>
+     </table>
+	
+
+    </li>
+
+	
+	<li><b>Chris Taylor</b> 
+	  
+	  <p>Chris is the author NTEventLogAppender. In around 1832,
+	  he ported our previous GNU-make build system to at the time
+	  unknown but promising <a href="jakarta.apache.org/ant/">jakarta-ant</a>.
+	  </p>
+	</li>
+
+	<li><b>Mark Womack</b> 
+  <table>
+  <tr>
+  <td>
+    <p>Mark Womack has been developing software for over 13
+	  years. He has been developing in Java for the past 5 years,
+	  focusing on web application development. He has been an
+	  active committer for the log4j project since April 2002, contributing
+    features for the upcoming v1.3 release.  He is also a member of the Logging
+    Services PMC.</p>
+  </td> 
+  <td />
+  </tr>
+  </table>
+    </li>
+      </ul>
+                                             
+            
+  
+                      <hr/>
+
+  
+                            
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/css/.cvsignore b/trunk/docs/css/.cvsignore
new file mode 100644
index 0000000..809f1c2
--- /dev/null
+++ b/trunk/docs/css/.cvsignore
@@ -0,0 +1 @@
+site.css
diff --git a/trunk/docs/css/README.txt b/trunk/docs/css/README.txt
new file mode 100644
index 0000000..27dbcb5
--- /dev/null
+++ b/trunk/docs/css/README.txt
@@ -0,0 +1,10 @@
+
+The eventTable-VERSION.css cascading style sheet files are accessed
+by many users when they browse an html file generated by HTMLLayout.
+
+By convention, the location for the eventTable-VERSION.css files is:
+
+  http://logging.apache.org/logging/log4j/docs/css/
+  
+  
+  
\ No newline at end of file
diff --git a/trunk/docs/css/eventTable-1.0.css b/trunk/docs/css/eventTable-1.0.css
new file mode 100644
index 0000000..9365cbd
--- /dev/null
+++ b/trunk/docs/css/eventTable-1.0.css
@@ -0,0 +1,76 @@
+
+table {
+  margin-left: 2em;
+  margin-right: 2em;
+  border-left: 2px solid #AAA;
+}
+
+TR.even {
+  background: #FFFFFF; 
+}
+
+TR.odd { 
+  background: #DADADA;
+}
+
+/*
+TR.WARN TD, TR.ERROR TD, TR.FATAL TD {
+   border-bottom: 1px solid #F00;  
+   border-top:    1px solid #F00;  
+   font-weight: bold;
+}
+*/
+
+TR.warn TD.level, TR.error TD.level, TR.fatal TD.level {
+   font-weight: bold;
+   color: #FF4040
+}
+
+TD {
+  padding-right: 1ex;
+  padding-left: 1ex;
+  border-right: 2px solid #AAA;
+}
+
+/*
+TD:first-child {
+  border-left: 2px solid #AAA;
+} */
+
+TD.time, TD.date {
+  text-align: right;
+  font-family: "Courier New", courier, monospace;
+  font-size: smaller;
+}
+
+TD.sn {
+  text-align: right;
+  width: 5ex;
+  font-family: "Courier New", courier, monospace;
+  font-size: smaller;
+}
+
+TD.thread {
+  text-align: left;
+}
+
+TD.level {
+  text-align: right;
+}
+
+TD.logger {
+  text-align: left;
+  font-size: smaller;
+}
+
+TR.header {
+  background: #9090FF;
+  color: #FFF;
+  font-weight: bold;
+  font-size: larger;
+}
+
+TD.exception {
+  background: #C0C0F0;
+  font-family: "Courier New", courier, monospace;  
+}
\ No newline at end of file
diff --git a/trunk/docs/css/site.css b/trunk/docs/css/site.css
new file mode 100644
index 0000000..149f6c0
--- /dev/null
+++ b/trunk/docs/css/site.css
@@ -0,0 +1,140 @@
+
+H1, H2, H3 {
+ color: #101099;
+}
+
+A:link, A:visited {
+  text-decoration: none;
+  color: #006699;
+}
+
+A:link:hover {
+  text-decoration: underline;
+}
+
+.centercol {
+  margin-top: 120px;
+  margin-left: 210px;
+  margin-right:210px;
+  max-width: 800px;
+}
+
+.leftcol {
+  position: absolute;
+  left:  10px;
+  top:   130px; 
+  width: 190px;
+}
+
+.banner {
+  position: absolute;
+  left:  10px;
+  top:   10px; 
+  height: 130px;
+  width: 1000px;
+}
+
+.menu_header, .menu_item {
+/*  width: 190px; */
+  font-family: "trebuchet MS", Arial, Helvetica, sans-serif;
+  font-size: smaller;
+}
+
+.menu_header {
+  border:1px solid #AAAAAA;
+  background: #CCCCCC; 
+  padding-left: 1ex;
+}
+
+.menu_item:hover {
+  background: #DDD; 
+}
+
+.menu_item {
+  background: #EEEEEE;
+  padding-left: 2ex;
+  border-top:   0px solid #AAAAAA;
+  border-right: 1px solid #AAAAAA;
+  border-bottom:1px solid #AAAAAA;
+  border-left:  1px solid #AAAAAA;
+}
+
+.source {
+  border-top: 1px solid #DDDDDD;
+  border-bottom: 1px solid #DDDDDD;
+  background:#eee;
+  font-family: Courier, "MS Courier New", Prestige, Everson Monocourrier, monospace;
+  font-size: smaller;
+  padding-bottom: 0.5ex;
+  padding-top: 0.5ex;
+  padding-left: 2ex;
+}
+
+table.ls {
+  background: #FFFFFF;
+}
+table.ls td {
+  background: #f4f4f4; 
+  vertical-align: top;
+  padding-bottom: 1ex;
+}
+
+table.ls th {
+  background: #E4E4E4;
+}
+
+.index-faqSection {
+   font-size: larger;
+   padding-left: 0em;
+   font-weight: bolder;
+}
+.index-question {
+   padding-left: 1em;
+}
+
+.faqSection {
+  font-size: larger;
+  font-weight: bolder;
+}
+
+.question {
+  font-weight: bolder;
+}
+
+/* this class is used for screen output placed in <pre></pre> tags */
+.screen_output {
+  padding-left:  1em;
+  padding-right: 1em;
+  border-top:   1px solid #AAAAAA;
+  border-right: 1px solid #AAAAAA;
+  border-bottom:1px solid #AAAAAA;
+  border-left:  1px solid #AAAAAA;
+}
+
+
+.big {
+  font-size: larger;
+  font-weight: bold;
+}
+
+.small {
+  font-size: smaller;
+}
+
+.red {
+  color: #AA0000;
+}
+
+.msg_title {
+  padding-left:  1ex;
+  padding-right: 1ex;
+  font-family: Courier, "MS Courier New", Prestige, Everson Monocourrier, monospace;
+  border:   1px solid #AAAAAA;
+  background: #DDDDFF;
+
+}
+
+.msg_meaning {
+  padding-left:  1em;
+  padding-right: 1em;
+}
diff --git a/trunk/docs/documentation.html b/trunk/docs/documentation.html
new file mode 100644
index 0000000..0bc67a5
--- /dev/null
+++ b/trunk/docs/documentation.html
@@ -0,0 +1,274 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki G�lc�">
+            <meta name="email" value="not@disclosed">
+                                        <meta name="author" value="Yoav Shapira">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Documentation</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>log4j documentation</strong></h1>
+                                    <a href="http://www.qos.ch/shop/products/eclm/"><img align="right" src="images/coverSmall.png" /></a>
+                                                <ul>
+        <p>
+            <li><a href="manual.html"><b>Short introduction to log4j</b></a> 
+           </li>
+        </p>
+        
+        <p>
+          <li><a href="http://www.qos.ch/shop/products/eclm/"><b>log4j: The complete manual</b></a> (commercial) 
+          </li>
+        </p>
+        
+        <p>
+          <li>
+            <b>javadoc: <a href="http://logging.apache.org/log4j/docs/api/index.html">1.2.13</a>, <a href="api/index.html">1.3 alpha 8</a></b>
+          </li>
+        </p>
+        
+        <p>
+          <li>
+            <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages"><b>Wiki</b></a>
+          </li>
+        </p>
+	
+      </ul>
+                                                                           <h1>Translations</strong></h1>
+                                    <ul>
+         <li><a href="http://www.vimeworks.com/~mauricio/manualLog4J.html">Spanish
+         translation</a> of the short manual Mauricio Santacruz (<a href="http://www.vimeworks.com/~mauricio/manualLog4J.pdf">PDF</a>, <a href="http://www.vimeworks.com/~mauricio/manualLog4J.html">HTML</a>)</li>
+         <li><a href="http://www.javacore.de/jumpToDownload.php?id=8&amp;url=tutorials/schnelle/log4jmanual.pdf">German translation</a> of the short manual, courtesy of Dirk Schnelle. (PDF only at this time)</li>
+      </ul>
+                                                                           <h1>Articles on log4j</strong></h1>
+                                    <ul>
+        
+        <p>
+          <li><a href="http://www.vipan.com/htdocs/log4jhelp.html">Don't Use System.out.println!
+          Use Log4j</a> by Vipan Singla
+          </li>
+        </p>
+        
+        <p><li><a href="http://www.onjava.com/pub/a/onjava/2002/08/07/log4j.html?page=1">
+        Build Flexible Logs With log4j</a> by Vikram Goyal
+        </li></p>
+        
+        <p><li><a href="http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/log4j/log4j.html">log4j</a>
+        by Ashley J.S Mills, University Of Birmingham</li></p>
+        
+        <p><li><a href="http://www.builder.com.com/article.jhtml?id=u00820020124kev01.htm">
+        Add logging to your Java Applications</a> by Kevin Brown
+        </li></p>
+        
+        <p><li><a href="http://www.builder.com.com/article.jhtml?id=u00220020724kev01.htm">
+        How does the Java logging API stack up against log4j?</a> by Kevin Brown
+        </li></p>
+        
+        <p>
+          <li>
+            <a href="http://www.opensymphony.com/guidelines/logging.jsp">OpenSymphony Logging Primer</a>
+          </li>
+        </p>
+        
+        <p><li>
+	  <a href="http://www.jguru.com/faq/Log4j">log4j FAQ</a> at jGuru
+	</li></p>
+
+	<p><li>
+	  <a href="http://www.qos.ch/logging/thinkAgain.html">Think Again</a> by Ceki G�lc�
+
+	</li></p>
+
+	<p><li> <a href="http://www.qos.ch/logging/sc.html">Supporting the
+	  log4j <code>RepositorySelector</code></a> by Ceki
+	  G�lc�
+	</li></p>
+
+         <p><li> <a href="http://rei1.m-plify.net/log4j/">Log4j class
+         diagrams</a>, courtesy of David Tonhofer
+            </li>
+         </p>
+
+         <p><li> <a href="http://www.onjava.com/pub/a/onjava/2003/04/02/log4j_ejb.html">Understanding
+         Classloaders: log4j in a J2EE Environment</a> by Vikram Goyal
+            </li>
+         </p>
+
+
+         <p><li> <a href="http://www.linux-magazin.de/Artikel/ausgabe/2002/04/coffee/coffee.html">Logging
+         f�r Java-Programme, Zu den Akten</a> by Bernhard Bablok
+         in Linux Magazine, 04/2002.
+            </li>
+         </p>
+
+         <p><li> <a href="http://www-106.ibm.com/developerworks/java/library/j-instlog/">Instant logging: Harness the power of log4j with Jabber</a> by Ruth Zamorano and Rafael Luque, in developerWorks 2003
+         </li>
+         </p>
+
+         <p>
+           <li> <a href="http://developers.sun.com/prodtech/appserver/reference/techart/log4j.html">Using Log4j in the Sun Java System Application Server</a> by Matthew Litkey, Jay Galvin, and Marina Sum, from Sun.
+           </li>
+         </p>
+         
+         <p>
+           <li> <a href="http://www.onjava.com/pub/a/onjava/2004/09/29/smtp-logging.html">Reporting
+           Application Errors by Email</a> by Sean C. Sullivan,
+           2004-09-24, published by O'Reilly.
+           </li>
+         </p>
+         
+      </ul>
+                                                                           <h1>Log4j presentations</strong></h1>
+                                    <ul>
+
+
+         <p><li> <a href="http://www.jug-l.org/log4j.html">Advanced
+         Log4j</a> Louisville JUG presentation by Jonathan Cowherd </li></p>
+         
+         <p><li><a href="http://www.johnmunsch.com/projects/Presentations/">Log4J
+         In 30 Minutes Or Less</a> by John Munsch</li></p>
+         
+         <p><li><a href="https://www.qos.ch/ac2001/F11-10.html">Log4j, a logging package for the Java language</a> by Ceki G�lc�</li></p>
+         
+         <p><li><a href="http://www.ejug.org/OpenSource%20Log4j2_files/frame.htm">Log4j presentation by the</a>
+         Edmonton Java Users Group</li></p>
+         
+         <p><li><a href="http://www.ociweb.com/javasig/knowledgebase/January2001/Log4J.ppt">Log4j</a> by Brent Twenter
+         </li></p>
+      </ul>
+                                                                           <h1>Training & Professional support</strong></h1>
+                                    <p>The following organisations offer log4j-related consultancy
+      and training services. Their inclusion on this page does
+      not imply endorsement by the Apache Software Foundation.	  
+      </p>
+                                                <ul>
+        <li><a href="https://www.qos.ch/shop/products/profSupport/">QOS.ch,
+        Switzerland</a> proposes professional support contracts.
+        </li>
+      </ul>
+                                                <ul>
+        <li><a href="http://www.thegoodsoftwarecompany.com/log4jTraining.do">The
+        Good Software Company</a> proposes log4j training courses.
+        </li>
+      </ul>
+                                                <p><b>If you would like your log4j-related article or service
+      to be listed here, then please send a note to the <a href="mailto:log4j-user@logging.apache.org">log4j-user@logging.apache.org</a>
+      list.</b>
+      </p>
+                                             
+            
+  
+                                              <hr/>
+
+  
+                                                                            
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/download.html b/trunk/docs/download.html
new file mode 100644
index 0000000..95f2bd0
--- /dev/null
+++ b/trunk/docs/download.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki G�lc�">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                     <meta  name="keywords"  content="java, log4j download, logging, tracing, component, framework, API, log4j"  />
+ 
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Download</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>log4j version 1.2.13</strong></h1>
+                                    <p>Log4j is <a href="http://logging.apache.org/site/binindex.cgi"><b>available
+	      for download</b></a> from a number of mirrors. Please
+	      use these mirrors as they improve download time and save
+	      bandwidth.
+	  </p>
+                                                <p>Log4j version 1.2.13 contains several bug fixes related to the TRACE
+    level introduced in version 1.2.12 and a fix in the ConsoleAppender
+    for a bug that affected JBoss.
+    </p>
+                                                <p>The next major release of log4j will be version 1.3.  It will contain
+    many new features and changes, and if you have written custom code, it may
+    need to be modified to work with it.  Please see the document entitled <a href="http://www.qos.ch/logging/preparingFor13.jsp">preparing
+    for log4j 1.3</a> for a more detailed discussion.
+    </p>
+                                                        <h3>Earlier Releases</strong></h3>
+                                    <p>We also maintain <a href="earlier.html">earlier
+	      versions of log4j</a> for download, intended for the
+	      curious paleontologist -- there seems to be quite a few
+	      of them!
+	    </p>
+                                                                                               <h1>Third-party extensions (listed in alphabetical order)</strong></h1>
+                                    <dl>
+
+	<!-- ============================================================================== -->
+	<dt><a href="http://minaret.biz/tips/datedFileAppender.html"><b>DatedFileAppender</b></a></dt>
+
+	<dd><code>DatedFileAppender</code> works in the same manner as
+	the Tomcat FileLogger. Contrary to
+	<code>DailyRollingFileAppender</code> shipping with log4j, log
+	file names generated by <code>DatedFileAppender</code> 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
+	<ocde>DailyRollingFileAppender</ocde>, a day's log file is not
+	renamed until the first message is logged some time after
+	midnight.
+	</dd>
+
+	<!-- ============================================================================== -->
+
+	<dt>
+	  <a href="http://www.dankomannhaupt.de/projects/index.html"><b>JDBCAppender</b></a>
+	</dt> 
+
+        <dd>A powerful <code>JDBCAppender</code> by Danko Mannhaupt
+	  who continues the work of Thomas Fenner. You might find
+	  this JDBCAppender more suitable then the one that ships with
+	  log4j 1.2. 
+	</dd>
+
+       <!-- ============================================================================== -->
+
+	<dt>
+	  <a href="http://just4log.sf.net/"><b>Just4log</b></a>
+	</dt> 
+
+        <dd>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.
+	</dd>
+
+     <!-- ============================================================================== -->	
+	<dt><a href="http://purl.net/jware/antx/"><b>log4Ant</b></a></dt>
+
+	<dd>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 <a href="maito:contact@jware.info">contact@jware.info</a>
+        </dd>
+     <!-- ============================================================================== -->	
+
+	<dt><a href="http://log4j400.sourceforge.net/"><b>log4j400</b></a></dt>
+
+	<dd>Log4J400 includes MessageQueue and DataQueue Appenders for
+	the AS/400 (aka IBM iSeries).
+        </dd>
+
+    <!-- ============================================================================== -->	
+	
+	<dt><a href="http://sourceforge.net/projects/log4j2db"><b>log4j2db</b></a></dt>
+
+	<dd>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.
+        </dd>
+
+	<!-- ============================================================================== -->	
+	
+	<dt><a href="http://cvs.apache.org/viewcvs/jakarta-log4j/log4jMini/"><b>log4j<em>ME</em></b></a></dt>
+
+	<dd>Log4j<em>ME</em>, or log4j MiniEdition, is based on the
+	same code as log4j. However, as the name indicates the
+	mini-edition is much smaller. It offers the same client
+	interface such that code compiled for log4jME is 100%
+	compatible with log4j standard edition. You can choose to
+	upgrade to log4j standard edition at any time by replacing
+	<em>log4jME.jar</em> with <em>log4j.jar</em> in your
+	classpath. At this time, log4jME is only available through
+	CVS.
+	</dd>
+	
+       <!-- ============================================================================== -->	
+	
+	<dt><a href="http://www.openfuture.de/Log4Unit/"><b>log4<em>Unit</em></b></a></dt>
+
+	<dd>Log4Unit is a <a href="http://www.junit.org/index.htm">JUnit</a> extension
+	combining JUnit with Log4J. The intention is to create test
+	protocols for JUnit.
+
+        <p>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.
+        </p>
+	</dd>
+
+	<!-- ============================================================================== -->
+
+	<dt><a href="http://www.launchsoftware.com"><b>Log4Web</b></a> (commercial) </dt>
+
+	<dd>Log4Web is a J2EE web application, designed to web-enable
+	  system log files that have been generated by log4j.
+	</dd>
+
+	<!-- ============================================================================== -->
+		
+	<dt><a href="http://jakarta.apache.org/taglibs/doc/log-doc/intro.html">
+	    <b>Log Tag</b></a>
+	</dt>
+	<dd>A custom log tag library from the <a href="http://jakarta.apache.org/taglibs/index.html">Jakarta
+	    Taglibs</a> project.</dd>
+
+	<!-- =========================================================================== -->
+
+	<dt><a href="http://www.codeczar.com/products/logweb/index.html"><b>LogWeb</b></a> </dt>
+
+	<dd>LogWeb is a web interface for configuring log4j at runtime
+	within a servlet container.  Every log4j feature of is
+	configurable through this interface.
+	</dd>
+
+	<!-- ============================================================================== -->
+
+
+	<dt><a href="http://www.m2technologies.net/asp/snmpTrapAppender.asp">
+	    <b>SNMPTrapAppender</b></a>
+	</dt>
+
+	<dd>An appender to send formatted logging event strings to a
+	  specified managment host (typically, a MLM of some sort, but
+	  could also be an SNMP management console) in the form of an
+	  SNMP trap.
+	</dd>
+
+	<!-- =========================================================================== -->
+
+         <dt><a href="http://xpolog.com"><b>XpoLog</b></a>
+	</dt>
+
+	<dd>Log view and analysis application which enables web
+	browsing and analysis over logs.
+	</dd>
+
+	<!-- =========================================================================== -->
+
+      </dl>
+                                                                           <h1>Ports to other languages (listed in alphabetical order within each section)</strong></h1>
+                                            <h3>Fellow Apache Logging Services Projects</strong></h3>
+                                    <dl>	
+	<!-- =========================================================================== -->
+
+	<dt><a href="http://logging.apache.org/log4cxx/"><b>log4cxx</b></a></dt>
+	<dd>Log4cxx is a port to C++ of the log4j project.</dd>
+
+	<!-- =========================================================================== -->	
+	<dt><a href="http://logging.apache.org/log4net/"><b>log4net</b></a></dt>
+
+	<dd>The .NET implementation of the popular log4j Java API
+	providing flexible and arbitrarily granular control over log
+	management and configuration.</dd>
+
+	<!-- =========================================================================== --> 
+        <dt><a href="http://logging.apache.org/log4php/"><b>log4php</b></a></dt> 
+
+        <dd>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. </dd>
+
+     </dl>
+                                                                            <h3>Other Ports</strong></h3>
+                                    <dl>
+	<!-- =========================================================================== -->
+	<dt><a href="http://log4c.sourceforge.net"><b>log4c</b></a></dt>
+
+	<dd>ANSI C functions and macros for flexible logging to files
+	and other destinations. It is modeled after log4j. It follows
+	the log4j API within the limits of reason. Intended for use in time-space
+	critical environments.</dd> 
+
+	<!-- =========================================================================== --> 
+	
+	<dt><a href="http://sourceforge.net/projects/log4cpp/"><b>log4cpp</b></a></dt>
+	<dd>A library of C++ classes for flexible logging to files,
+	syslog, IDSA and other destinations modeled after log4j.</dd>
+	
+	<!-- ========================================================================== --> 
+
+	<dt><a href="http://log4cplus.sourceforge.net/"><b>log4cplus</b></a></dt>
+	<dd>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.</dd>
+
+	<!-- =========================================================================== -->
+	
+	<dt><a href="http://goanna.sourceforge.net/"><b>log4E</b></a></dt>
+
+	<dd>The Goanna project (Eiffel Web Services) now includes
+	log4E, a complete port of log4j. 
+	</dd>
+	
+	<!-- =========================================================================== -->
+	<dt><a href="http://log4perl.sourceforge.net"><b>Log::Log4perl</b></a></dt>
+
+	<dd>Log::Log4perl is a Perl port of log4j by Kevin Goess and
+	Mike Schilli. The authors made sure that their port was as
+	close as possible to the original implementation.  Even the
+	configuration files are similar! The project is still being
+	enhanced, however the current release is stable and has been
+	released to CPAN.
+	</dd>
+
+        <!-- ============================================================================== -->	
+        <dt><a href="http://log4ls.sourceforge.net/"><b>log4LS</b></a></dt>
+
+        <dd>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.
+         </dd>
+
+	<!-- =========================================================================== -->
+	<dt><a href="http://www.its4you.at/log4py.php"><b>log4py</b></a></dt>
+
+	<dd>Log4Py is a python logging module similar to log4j. It
+	supports logging to files or to stdout/stderr, variable
+	log-levels, configurable output formats and configuration via
+	configuration files. 
+	</dd>
+	
+	<!-- =========================================================================== -->
+	
+	<dt><a href="http://log4p.sourceforge.net"><b>log4p</b></a></dt>
+	<dd>Another Python translation of log4j. This project no
+	longer seems to be maintained.</dd>
+	
+	<!-- =========================================================================== -->
+
+	<dt><a href="http://log4plsql.sourceforge.net/"><b>log4plsql</b></a></dt>
+
+	<dd>Log4plsql is a Oracle PL/SQL logging module similar to
+	log4j. It supports logging out-off transaction. It is useful
+	for logging, benchmarking and monitoring PL/SQL applications.
+	</dd>
+	
+	<!-- =========================================================================== -->
+	
+	<dt><a href="http://sourceforge.net/projects/qmmslog"><b>qmmslog</b></a></dt>
+
+	<dd>Qmmslog is a port of log4j to the Qt/C++ platform.
+	</dd>
+
+	<!-- =========================================================================== -->
+	<dt><a href="http://log4r.sourceforge.net"><b>log4r</b></a></dt>
+	<dd>A Powerful Logger for Ruby. 
+	  <p>Log4r features an extremely flexible logging library for
+	    Ruby. Killer features include a heiarchial logging system
+	    of any number of levels, logger inheritance, multiple
+	    output destinations, tracing, custom formatting and more.
+	    Log4r was inspired by log4j. Log4r provides the defining
+	    features of log4j and some of its own features that just
+	    might make log4j users envious.</p>	    
+	</dd>	
+	
+	<!-- =========================================================================== -->
+      </dl>
+                                                                    <p>If you would like your software to be listed here, then send a note to the <a href="mailto:log4j-user@logging.apache.org">log4j-user@logging.apache.org</a>
+	list.</p>
+                                             
+            
+  
+                                  <hr/>
+
+  
+                                                    
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/earlier.html b/trunk/docs/earlier.html
new file mode 100644
index 0000000..d675ff2
--- /dev/null
+++ b/trunk/docs/earlier.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki G�lc�">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Older distributions</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>Older distributions of the log4j package</strong></h1>
+                                    <hr />
+                                                <p><b>BEWARE:</b>Certain Internet Explorer versions rename .tar.gz downloads
+        as .tar.  You should rename the files back to
+	<code>tar.gz</code> after the download completes.
+      </p>
+                                                <hr />
+                                                <a href="http://archive.apache.org/dist/logging/log4j/">Log4j Archives</a>
+                                             
+            
+  
+                      <hr/>
+
+  
+                            
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/faq.html b/trunk/docs/faq.html
new file mode 100644
index 0000000..fd0a4e0
--- /dev/null
+++ b/trunk/docs/faq.html
@@ -0,0 +1,1898 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki G�lc�">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Frequently Asked Questions about log4j</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                       <center>
+
+    <h2>Frequently Asked Questions about log4j</h2>
+
+    <h3>Ceki  G�lc�, Paul Smith, Chris Taylor<br />
+
+    May 2002, last updated on September 15th, 2004</h3>
+
+  </center>
+                                                                                                                                                                                                                                              
+            
+  
+                  <br/>
+      <div class="index-faqSection">
+        Section 1. <a href="#1"> Generalities</a>
+      </div>
+
+                                                     <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.1</td>	      
+              <td><a href="#1.1">What is log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.2</td>	      
+              <td><a href="#1.2">Is log4j a reliable logging system?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.3</td>	      
+              <td><a href="#1.3">What are the prerequisites for log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.4</td>	      
+              <td><a href="#1.4">What are the features of log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.5</td>	      
+              <td><a href="#1.5">Is there example code for using log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.6</td>	      
+              <td><a href="#1.6">What documentation should I read to learn more about
+
+      log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.7</td>	      
+              <td><a href="#1.7">Is log4j thread-safe?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.8</td>	      
+              <td><a href="#1.8">What does log output look like?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.9</td>	      
+              <td><a href="#1.9">Why should I use log4j when JDK 1.4 already ships with a
+
+      logging API?</a></td>           
+            </table>
+                                        <br/>
+      <div class="index-faqSection">
+        Section 2. <a href="#2"> Using log4j</a>
+      </div>
+
+                                                     <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.1</td>	      
+              <td><a href="#2.1">What are <em>Loggers</em>?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.2</td>	      
+              <td><a href="#2.2">How can I change log behavior at runtime?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.3</td>	      
+              <td><a href="#2.3">What is the fastest way of (not) logging?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.4</td>	      
+              <td><a href="#2.4"> Are there any suggested ways for naming loggers?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.5</td>	      
+              <td><a href="#2.5">How do I get the fully-qualified name of a class in a static block?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.6</td>	      
+              <td><a href="#2.6">Can the log output format be customized? </a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.7</td>	      
+              <td><a href="#2.7">What are the configurable options for <code>FooBarAppender</code>?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.8</td>	      
+              <td><a href="#2.8">What is the recommended way of migrating from
+
+      java.util.logging to log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.9</td>	      
+              <td><a href="#2.9">Is it possible to direct log output to
+
+      different appenders by level? </a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.10</td>	      
+              <td><a href="#2.10">What does the Windows NT Event Viewer complain about
+
+      missing descriptions for my event messages when I use the
+
+      <code>NTEventLogAppender</code>?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.11</td>	      
+              <td><a href="#2.11">Why can't I map my logger names to the loggers that
+
+      appear in the NT Event Log when I use the
+
+      NTEventLogAppender?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.12</td>	      
+              <td><a href="#2.12">Are there suggested approaches for logging in JSP pages?</a></td>           
+            </table>
+                                        <br/>
+      <div class="index-faqSection">
+        Section 3. <a href="#3"> Advanced questions</a>
+      </div>
+
+                                                     <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.1</td>	      
+              <td><a href="#3.1">Can the outputs of multiple client request go to
+
+      different log files?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.2</td>	      
+              <td><a href="#3.2">Logger instances seem to be create only. Why isn't
+
+      there a method to remove logger instances?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.3</td>	      
+              <td><a href="#3.3">How do I get multiple process to log to the same file?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.4</td>	      
+              <td><a href="#3.4">How about the timesamps of events generated by multiple
+
+      processes across multiple hosts (possibly across multiple
+
+      timezones)?
+
+      </a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.5</td>	      
+              <td><a href="#3.5">Why can't log4j find my properties file in a J2EE or WAR
+
+      application?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.6</td>	      
+              <td><a href="#3.6">Is there a way to get log4j to automatically reload a
+
+      configuration file if it changes?</a></td>           
+            </table>
+                                        <br/>
+      <div class="index-faqSection">
+        Section 4. <a href="#4"> Contributing to the project</a>
+      </div>
+
+                                                     <table class="index-question">
+              <td nowrap="true" valign="top">Question 4.1</td>	      
+              <td><a href="#4.1">Why should I donate my extensions to log4j back to the
+
+      project?
+
+      </a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 4.2</td>	      
+              <td><a href="#4.2">What should I keep in mind when contributing code?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 4.3</td>	      
+              <td><a href="#4.3">How can I contribute a new question/answer to this
+
+      document?</a></td>           
+            </table>
+                                            <hr/>
+
+  
+                  <div class="faqSection">
+        <a name="1">Section 1.</a> Generalities
+      </div>
+                                       
+
+      <p>This section contains general questions about log4j.</p>
+
+    
+                                 <div class="question">
+             <a name="1.1">1.1 What is log4j?</a>
+           </div>
+                      
+
+	<p>log4j is a tool to help the programmer output log statements to a
+
+	variety of output targets.
+
+	</p>
+
+
+
+	<p>In case of problems with an application, it is helpful to
+
+	enable logging so that the problem can be located. With log4j
+
+	it is possible to enable logging at runtime without modifying
+
+	the application binary.  The log4j package is designed so that
+
+	log statements can remain in <i>shipped</i> code without
+
+	incurring a high performance cost. It follows that the speed
+
+	of logging (or rather not logging) is capital.
+
+	</p>
+
+
+
+	<p>At the same time, log output can be so voluminous that it quickly
+
+	becomes overwhelming. One of the distinctive features of log4j is the
+
+	notion of <i>hierarchical loggers</i>. Using loggers it is
+
+	possible to selectively control which log statements are output at
+
+	arbitrary  granularity.
+
+	</p>
+
+
+
+	<p>log4j is designed with two three goals in mind:
+
+	reliability, speed and flexibility. There is a tight balance
+
+	between these requirements. We believe that log4j strikes the
+
+	right balance.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="1.2">1.2 Is log4j a reliable logging system?</a>
+           </div>
+                      
+
+	<p>No. log4j is not reliable. It is a best-effort 
+
+	<em>fail-stop</em> logging system.
+
+	</p>
+
+
+
+	<p>By fail-stop, we mean that log4j will not throw unexpected
+
+	exceptions at run-time potentially causing your application to
+
+	crash. <b>If for any reason, log4j throws an uncaught exception,
+
+	please send an email to the <a href="mailto:log4j-user@logging.apache.org">log4j-user@logging.apache.org</a>
+
+	mailing list</b>. Uncaught exceptions are handled as serious bugs
+
+	requiring immediate attention.
+
+	</p>
+
+
+
+	<p>Moreover, log4j will not revert to System.out or System.err
+
+	when its designated output stream is not opened, is not writable or
+
+	becomes full. This avoids corrupting an otherwise working program by
+
+	flooding the user's terminal because logging fails. However, log4j
+
+	will output a single message to System.err indicating that logging can
+
+	not be performed.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="1.3">1.3 What are the prerequisites for log4j?</a>
+           </div>
+                      
+
+	<ul>
+
+	  <li><p>Log4j versions upto and including 1.2.8 are
+
+	  compatible with JDK 1.1.x and later.  Log4j version 1.3 will
+
+	  be compatilble with JDK 1.2 and later.
+
+	  </p></li>
+
+
+
+	  <li><p>The DOMConfigurator is based on the DOM Level 1
+
+	  API. The DOMConfigurator.configure(Element) method will work
+
+	  with any XML parser that will pass it a DOM tree.
+
+	  </p>
+
+	  <p>The DOMConfigurator.configure(String filename) method and its
+
+	  variants require a JAXP compatible XML parser, for example <a href="http://xml.apache.org/">Xerces</a> or Sun's
+
+	  parser. Compiling the DOMConfigurator requires the presence of a
+
+	  JAXP parser in the classpath.
+
+	  </p>
+
+	  </li>
+
+
+
+	  <li><p>The <code>org.apache.log4j.net.SMTPAppender</code>
+
+	  relies on the <a href="http://java.sun.com/products/javamail/">JavaMail
+
+	  API</a>. It has been tested with JavaMail API version
+
+	  1.2. The JavaMail API requires the <a href="http://java.sun.com/beans/glasgow/jaf.html">JavaBeans
+
+	  Activation Framework</a> package.
+
+	  </p></li>
+
+
+
+	  <li><p>The <code>org.apache.log4j.net.JMSAppender</code>
+
+	  requires the presence of the JMS API as well as JNDI.
+
+	  </p></li>
+
+
+
+	  <li><p>log4j test code relies on the <a href="http://www.junit.org">JUnit</a> testing framework.
+
+	  </p></li>
+
+	</ul>    	
+
+      
+                                 <div class="question">
+             <a name="1.4">1.4 What are the features of log4j?</a>
+           </div>
+                      
+
+	<ul>
+
+
+
+	  <li><p>log4j is optimized for speed.</p></li>
+
+
+
+	  <li><p>log4j is based on a named logger hierarchy.</p></li>
+
+	  
+
+	  <li><p>log4j is fail-stop. However, altough it certainly
+
+	  strives to ensure delivery, log4j does not guarantee that
+
+	  each log statement will be delivered to its destination.
+
+	  </p></li>
+
+
+
+	  <li><p>log4j is thread-safe.</p></li>
+
+
+
+	  <li><p>log4j is not restricted to a predefined set of
+
+	  facilities.</p></li>
+
+
+
+	  <li><p>Logging behavior can be set at runtime using a
+
+	  configuration file. Configuration files can be property
+
+	  files or in XML format.  </p></li>
+
+
+
+	  <li><p>log4j is designed to handle Java Exceptions from the
+
+	  start.</p></li>
+
+	  
+
+	  <li><p>log4j can direct its output to a file, the console,
+
+	  an <code>java.io.OutputStream</code>,
+
+	  <code>java.io.Writer</code>, a remote server using TCP, a
+
+	  remote Unix Syslog daemon, to a remote listener using JMS,
+
+	  to the NT EventLog or even send e-mail.  </p></li>
+
+
+
+	  <li><p>log4j uses 6 levels, namely TRACE, DEBUG, INFO, WARN,
+
+	  ERROR and FATAL.  </p></li>
+
+
+
+	  <li><p>The format of the log output can be easily changed by
+
+	  extending the <code>Layout</code>
+
+          class.  </p></li>
+
+
+
+	  <li><p>The target of the log output as well as the writing
+
+	  strategy can be altered by implementations of the
+
+	  <code>Appender</code> interface.  </p></li>
+
+
+
+	  <li><p>log4j supports multiple output appenders per logger.
+
+	  </p></li>
+
+
+
+	  <li><p>log4j supports internationalization.</p></li>
+
+	</ul>
+
+      
+                                 <div class="question">
+             <a name="1.5">1.5 Is there example code for using log4j?</a>
+           </div>
+                      
+
+	<p>See the <code>examples/</code> directory.</p>
+
+      
+                                 <div class="question">
+             <a name="1.6">1.6 What documentation should I read to learn more about
+
+      log4j?</a>
+           </div>
+                      
+
+	<p>Make sure to read the <a href="manual.html">short
+
+	manual</a>. It is also recommended to you read <a href="https://www.qos.ch/shop/products/log4j/log4j-Manual.jsp">The complete
+
+	log4j manual</a> which is much more detailed and up to
+
+	date. Both documents were written by Ceki G�lc�.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="1.7">1.7 Is log4j thread-safe?</a>
+           </div>
+                      
+
+	<p>Yes, log4j is thread-safe. Log4j components are designed to
+
+	be used in heavily multithreaded systems.</p>
+
+      
+                                 <div class="question">
+             <a name="1.8">1.8 What does log output look like?</a>
+           </div>
+                      
+
+
+
+	<p>The log output can be customized in many ways. Moreover,
+
+	one can completely override the output format by implementing
+
+	one's own Layout.
+
+	</p>
+
+
+
+	<p>Here is an example output using <em>PatternLayout</em> with
+
+	the conversion pattern <b>"%r [%t] %-5p %c{2} %x - %m%n"</b>
+
+	</p>
+
+
+
+	<pre class="screen_output">
+
+176 [main] INFO  examples.Sort - Populating an array of 2 elements in reverse order.
+
+225 [main] INFO  examples.SortAlgo - Entered the sort method.
+
+262 [main] DEBUG SortAlgo.OUTER i=1 - Outer loop.
+
+276 [main] DEBUG SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0
+
+290 [main] DEBUG SortAlgo.OUTER i=0 - Outer loop.
+
+304 [main] INFO  SortAlgo.DUMP - Dump of interger array:
+
+317 [main] INFO  SortAlgo.DUMP - Element [0] = 0
+
+331 [main] INFO  SortAlgo.DUMP - Element [1] = 1
+
+343 [main] INFO  examples.Sort - The next log statement should be an error message.
+
+346 [main] ERROR SortAlgo.DUMP - Tried to dump an uninitialized array.
+
+        at org.log4j.examples.SortAlgo.dump(SortAlgo.java:58)
+
+        at org.log4j.examples.Sort.main(Sort.java:64)
+
+467 [main] INFO  examples.Sort - Exiting main method.
+
+	</pre>
+
+
+
+	<p>The first field is the number of milliseconds elapsed since
+
+	the start of the program. The second field is the thread
+
+	outputting the log statement. The third field is the level of
+
+	the log statement. The fourth field is the rightmost two
+
+	components of the logger making the log request. The fifth
+
+	field (just before the '-') is the <em>nested diagnostic
+
+	context</em> (NDC). Note the nested diagnostic context may be
+
+	empty as in the first two statements. The text after the '-'
+
+	is the message of the statement.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="1.9">1.9 Why should I use log4j when JDK 1.4 already ships with a
+
+      logging API?</a>
+           </div>
+                      
+
+        <p>
+
+        Although both APIs are conceptually similar, the log4j API is
+
+        significantly more flexible and offers many more features, too
+
+        numerous to be listed here. You will discover that the
+
+        additional features and flexibility turn out to be
+
+        indispensable in the context of a mission-critical
+
+        application.
+
+        </p>
+
+
+
+        <p>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
+
+        from all over the world is bound to make a difference.
+
+        </p>
+
+      
+                              <div class="faqSection">
+        <a name="2">Section 2.</a> Using log4j
+      </div>
+                                       
+
+      <p>This section contains answers to questions encountered while
+
+      using log4j.</p>
+
+    
+                                 <div class="question">
+             <a name="2.1">2.1 What are <em>Loggers</em>?</a>
+           </div>
+                      
+
+	<p>Lggers lie at the heart of log4j. Loggers define a hierarchy and give
+
+	the programmer <em>run-time</em> control on which statements are
+
+	printed or not.
+
+	</p>
+
+	
+
+	<p>Loggers are assigned levels. A log statement is printed
+
+	depending on its level <em>and</em> its logger.
+
+	</p>
+
+	
+
+	<p>Make sure to read the <a href="manual.html">log4j manual</a>
+
+	for more information.
+
+	</p>	
+
+      
+                                 <div class="question">
+             <a name="2.2">2.2 How can I change log behavior at runtime?</a>
+           </div>
+                      
+
+	<p>Log behavior can be set using configuration files which are parsed
+
+	at runtime. Using configuration files the programmer can define
+
+	loggers and set their levels.
+
+	</p>
+
+	
+
+	<p>The <code>PropertyConfigurator</code> defines a particular format
+
+	of a configuration file. See also the <code>examples/Sort.java</code>
+
+	example and associated configuration files.
+
+	</p>
+
+	
+
+	<p>Configuration files can be specified in XML. See
+
+	<code>log4j.dtd</code> and
+
+	<code>org.log4j.xml.DOMConfigurator</code> for more details.
+
+	</p>
+
+	
+
+	<p>See the various Layout and Appender components for specific
+
+	configuration options.
+
+	</p>
+
+	
+
+	<p>In addition to configuration files, the user may disable all
+
+	messages belonging to a set of levels. See next item.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.3">2.3 What is the fastest way of (not) logging?</a>
+           </div>
+                      
+
+
+
+	<p> For some logger <code>l</code>, writing, 
+
+	</p>
+
+	
+
+	<pre class="source">
+
+ l.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
+
+	</pre>
+
+	
+
+	<p>incurs the cost of constructing the message parameter, that is
+
+	converting both integer <code>i</code> and <code>entry[i]</code> to a
+
+	String, and concatenating intermediate strings. This, regardless of
+
+	whether the message will be logged or not.
+
+	</p>
+
+
+
+	<p>If you are worried about speed, then write</p>
+
+	<pre class="source">
+
+   if(l.isDebugEnabled()) {
+
+     l.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
+
+   }
+
+	</pre>
+
+
+
+	<p>This way you will not incur the cost of parameter
+
+	construction if debugging is disabled for logger
+
+	<code>l</code>. On the other hand, if the logger is debug
+
+	enabled, you will incur the cost of evaluating whether the
+
+	logger is enabled or not, twice: once in
+
+	<code>debugEnabled</code> and once in <code>debug</code>.
+
+	This is an insignificant overhead since evaluating a logger
+
+	takes less than 1% of the time it takes to actually log a
+
+	statement.
+
+	</p>
+
+	
+
+        <h3>Better alternative based on message patterns</h3>
+
+        <p>As of log4j version 1.3, there exists a significantly more
+
+        convenient alternative based on message patterns. Assuming
+
+        <code>entry</code> is an object, you can write:
+
+        </p>
+
+
+
+	<p class="source">
+
+          l.debug("The new entry is {}.", entry);
+
+	</p>
+
+
+
+        <p>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
+
+        <code>entry</code>. In other words, the paramerized form does
+
+        not incur the cost of parameter construction in case the log
+
+        statement is disabled.
+
+        </p>
+
+        
+
+        <p>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 <em>disabled</em> logging
+
+        statement.
+
+        </p>
+
+        
+
+	<p class="source">
+
+          l.debug("The new entry is "+entry+"."); <br />
+
+          l.debug("The new entry is {}.", entry);
+
+	</p>
+
+        
+
+        <p>A two argument variant is also availalble. For example, you
+
+        can write:
+
+        </p>
+
+	<p class="source">
+
+          l.debug("The new entry is {}. It replaces {}.", entry, oldEntry);
+
+	</p>
+
+        
+
+     
+
+
+
+      
+                                 <div class="question">
+             <a name="2.4">2.4  Are there any suggested ways for naming loggers?</a>
+           </div>
+                      
+
+	
+
+
+
+	<p>Yes, there are.</p>
+
+
+
+	<p>You can name loggers by <strong>locality</strong>. It turns out
+
+	that instantiating a logger in each class, with the logger name
+
+	equal to the fully-qualified name of the class, is a useful and
+
+	straightforward approach of defining loggers. This approach has
+
+	many benefits:
+
+	</p>
+
+	
+
+	<ul>
+
+	  <li>It is very simple to implement.</li>
+
+	  
+
+	  <li>It is very simple to explain to new developers.</li>
+
+	  
+
+	  <li>It automatically mirrors your application's own modular design.
+
+	  </li>
+
+	  <li>It can be further refined at will.</li>
+
+	  
+
+	  <li>Printing the logger automatically gives information on the locality
+
+	  of the log statement.	  </li>
+
+	</ul>
+
+
+
+	<p>However, this is not the only way for naming loggers. A
+
+	common alternative is to name loggers by <strong>functional
+
+	areas</strong>. For example, the "database" logger, "RMI"
+
+	logger, "security" logger, or the "XML" logger.
+
+	</p>
+
+
+
+	<p>You may choose to name loggers by functionality and
+
+	subcategorize by locality, as in "DATABASE.com.foo.some.package.someClass" or
+
+	"DATABASE.com.foo.some.other.package.someOtherClass".
+
+	</p>
+
+	
+
+	<p><em>You are totally free in choosing the names of your
+
+	loggers.</em> The log4j package merely allows you to manage your
+
+	names in a hierarchy.  However, it is your responsibility to define
+
+	this hierarchy.
+
+	</p>
+
+	
+
+	<p>Note by naming loggers by locality one tends to name things by
+
+	functionality, since in most cases the locality relates closely to
+
+	functionality. 
+
+	</p>
+
+
+
+      
+                                 <div class="question">
+             <a name="2.5">2.5 How do I get the fully-qualified name of a class in a static block?</a>
+           </div>
+                      
+
+	<p>You can easily retrieve the fully-qualified name of a class in a
+
+	static block for class X, with the statement
+
+	<code>X.class.getName()</code>. Note that <code>X</code> is the class
+
+	name and not an instance.  The <code>X.class</code> statement does
+
+	<i>not</i> create a new instance of class <code>X</code>.
+
+	</p>
+
+	
+
+	<p>Here is the suggested usage template:</p>
+
+
+
+	<pre class="source">
+
+package a.b.c;
+
+
+
+public class Foo {
+
+  final static Logger logger = Logger.getLogger(Foo.class);
+
+  ... other code
+
+
+
+}
+
+	</pre>
+
+      
+                                 <div class="question">
+             <a name="2.6">2.6 Can the log output format be customized? </a>
+           </div>
+                      
+
+	<p>Yes, you can extend the <code>Layout</code> class to create
+
+	you own customized log format. Appenders can be parameterized
+
+	to use the layout of your choice.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.7">2.7 What are the configurable options for <code>FooBarAppender</code>?</a>
+           </div>
+                      
+
+	<p>Log4j uses JavaBeans style configuration.</p>
+
+
+
+	<p>Thus, any setter method in <code>FooBarAppender</code>
+
+	corresponds to a configurable option. For example, in <a href="api\org\apache\log4j\RollingFileAppender.html"><code>RollingFileAppender</code></a>
+
+	the <a href="api/org/apache/log4j/RollingFileAppender.html#setMaxBackupIndex(int)"><code>setMaxBackupIndex(int
+
+	maxBackups)</code></a> method corresponds to the
+
+	<code>maxBackupIndex</code> option. The first letter of the
+
+	option can be upper case, i.e.  <code>MaxBackupIndex</code>
+
+	and <code>maxBackupIndex</code> are equivalent but not
+
+	<code>MAXBACKUPIndex</code> nor <code>mAXBackupIndex</code>.
+
+	</p>
+
+
+
+	<p>Layouts options are also defined by their setter methods. The same goes
+
+	for most other log4j components.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.8">2.8 What is the recommended way of migrating from
+
+      java.util.logging to log4j?</a>
+           </div>
+                      
+
+	
+
+	<p>We suggest to just use global file search/replace.  You should be able
+
+	to replace all the "java.util.Logger" references with
+
+	"org.apache.log4j.Logger", and you should be on your way.
+
+	</p>
+
+	
+
+	<p>If you're on a Win32 platform, we recommend <a href="http://www.textpad.com/">Textpad</a>. You can use the
+
+	CTRL+SHIFT+O to open all *.java files from a directory including all
+
+	its sub-directories, and then use the search/replace function to
+
+	replace in all files, and then CTRL+SHIFT+S to save all.  Should take
+
+	about 60 seconds!  :)
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.9">2.9 Is it possible to direct log output to
+
+      different appenders by level? </a>
+           </div>
+                      
+
+	<p>Yes it is. Setting the <b>Threshold</b> option of any appender
+
+	extending <a href="api/org/apache/log4j/AppenderSkeleton.html">AppenderSkeleton</a>,
+
+	(most log4j appenders extend AppenderSkeleton) to filter out all log
+
+	events with <em>lower</em> level than the value of the threshold
+
+	option. 
+
+	</p>
+
+
+
+	<p>For example, setting the threshold of an appender to DEBUG
+
+	also allow INFO, WARN, ERROR and FATAL messages to log along
+
+	with DEBUG messages. This is usually acceptable as there is
+
+	little use for DEBUG messages without the surrounding INFO,
+
+	WARN, ERROR and FATAL messages. Similarly, setting the
+
+	threshold of an appender to ERROR will filter out DEBUG, INFO
+
+	and WARN messages but not ERROR or FATAL messages.
+
+	</p>
+
+
+
+	<p>This policy usually best encapsulates what the user
+
+	actually wants to do, as opposed to her mind-projected
+
+	solution.
+
+	</p>
+
+	<p>See <i>examples/sort4.lcf</i> for an example threshold
+
+	configuration.</p>
+
+
+
+	<p>If you must filter events by exact level match, then you can
+
+	attach a <a href="api/org/apache/log4j/varia/LevelMatchFilter.html">LevelMatchFilter</a>
+
+	to any appender to filter out logging events by exact level match.
+
+	</p>
+
+
+
+      
+                                 <div class="question">
+             <a name="2.10">2.10 What does the Windows NT Event Viewer complain about
+
+      missing descriptions for my event messages when I use the
+
+      <code>NTEventLogAppender</code>?</a>
+           </div>
+                      
+
+	<p>The NT Event Viewer relies on <i>message resource</i> DLLs
+
+	to properly view an event message.  The NTEventLogAppender.dll
+
+	contains these message resources, but that DLL must be copied
+
+	to %SYSTEMROOT%\SYSTEM32 for it to work properly.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.11">2.11 Why can't I map my logger names to the loggers that
+
+      appear in the NT Event Log when I use the
+
+      NTEventLogAppender?</a>
+           </div>
+                      
+
+																				
+
+	<p>Unfotunately, the logger names are hardcoded within the
+
+	message resource DLL (see previous question about
+
+	NTEventLogAppender), so there isn't any easy way to override
+
+	those dynamically... in fact, I don't think it's possible to
+
+	do it, as you'd have to modify the DLL resources for every
+
+	application. Since most native applications don't use the
+
+	Logger column anyway...
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.12">2.12 Are there suggested approaches for logging in JSP pages?</a>
+           </div>
+                      
+
+        <p>
+
+        The suggested approach depends on your design requirements.  If you or
+
+        your organization has no constraints on the use of Java in JSP pages,
+
+        simply use log4j normally in <code>&lt;% ... %&gt;</code> statements
+
+        as indicated in the Short Manual and the rest of the documentation.
+
+        </p>
+
+        <p>
+
+        However, if your design calls for a minimum amount of Java in your JSP
+
+        pages, consider using the
+
+        <a href="http://jakarta.apache.org/taglibs/doc/log-doc/intro.html">Log Taglib</a>
+
+        from the Jakarta Taglibs project.  It provides logging JSP tags that invoke
+
+        log4j.
+
+        </p>
+
+      
+                              <div class="faqSection">
+        <a name="3">Section 3.</a> Advanced questions
+      </div>
+                                       
+
+      <p>This section contains answers to more advanced questions about log4j.</p>
+
+    
+                                 <div class="question">
+             <a name="3.1">3.1 Can the outputs of multiple client request go to
+
+      different log files?</a>
+           </div>
+                      
+
+	
+
+	<p>Many developers are confronted with the problem of
+
+	distinguishing the log output originating from the same class
+
+	but different client requests. They come up with ingenious
+
+	mechanisms to fan out the log output to different files. In
+
+	most cases, this is not the right approach.
+
+	</p>
+
+
+
+	<p>It is simpler to use a nested diagnostic context
+
+	(NDC). Typically, one would <em>NDC.push()</em> client
+
+	specific information, such as the client's hostname, ID or any
+
+	other distinguishing information when starting to handle the
+
+	client's request. Thereafter, log output will automatically
+
+	include the nested diagnostic context so that you can
+
+	distinguish logs from different client requests even if they
+
+	are output to the same file.
+
+	</p>
+
+
+
+	<p>See the <code>NDC</code> and the <code>PatternLayout</code>
+
+	classes for more information. The <code>NumberCruncher</code>
+
+	example shows how the NDC can be used to distinguish the log
+
+	output from multiple clients even if they share the same log
+
+	file.
+
+	</p>
+
+
+
+	<p>For select applications, such as virtual hosting
+
+	web-servers, the NDC solution is not sufficient. As of version
+
+	0.9.0, log4j supports multiple hierarchy trees. Thus, it is
+
+	possible to log to different targets from the same logger
+
+	depending on the current context.
+
+	</p>
+
+
+
+      
+                                 <div class="question">
+             <a name="3.2">3.2 Logger instances seem to be create only. Why isn't
+
+      there a method to remove logger instances?</a>
+           </div>
+                      
+
+	<p>It is quite nontrivial to define the semantics of a
+
+	"removed" logger escecially if it is still referenced by the
+
+	user. Future releases <em>may</em> include a remove method in
+
+	the Logger class.</p>
+
+      
+                                 <div class="question">
+             <a name="3.3">3.3 How do I get multiple process to log to the same file?</a>
+           </div>
+                      
+
+	<p>You may have each process log to a 
+
+	<a href="api/org/apache/log4j/net/SocketAppender.html"><code>SocketAppender</code></a>.  
+
+	The receiving 
+
+	<a href="api/org/apache/log4j/net/SocketServer.html"><code>SocketServer</code></a>  
+
+	(or 
+
+	<a href="api/org/apache/log4j/net/SimpleSocketServer.html"><code>SimpleSocketServer</code></a>)
+
+	can receive all the events and send them to a single
+
+	log file.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="3.4">3.4 How about the timesamps of events generated by multiple
+
+      processes across multiple hosts (possibly across multiple
+
+      timezones)?
+
+      </a>
+           </div>
+                      
+
+	
+
+	<p>The timestamp is created when the logging event is created.
+
+	That is so say, when the <code>debug</code>,
+
+	<code>info</code>, <code>warn</code>, <code>error</code> or
+
+	<code>fatal</code> method is invoked.  Thus, the timestamp is
+
+	unaffected by the time at which event arrive at a remote
+
+	socket server.  
+
+	</p>
+
+	
+
+	<p>Timestamps are stored in UTC format inside the
+
+	event. Consequently, when displayed or written to a log file,
+
+	timestamps appear in the same timezone as the host displaying
+
+	or creating the logfile.  Note that because the clocks of
+
+	various machines may not be synchronized, there may be
+
+	timestamp inconsistencies between events generated on
+
+	different hosts.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="3.5">3.5 Why can't log4j find my properties file in a J2EE or WAR
+
+      application?</a>
+           </div>
+                      
+
+
+
+	<p>The short answer: the log4j classes and the properties file
+
+	are not within the scope of the same classloader.
+
+	</p>
+
+
+
+	<p>The long answer (and what to do about it): J2EE or Servlet
+
+	containers utilize Java's class loading system.  Sun changed
+
+	the way classloading works with the release of Java 2.  In
+
+	Java 2, classloaders are arranged in a hierarchial
+
+	parent-child relationship.  When a child classloader needs to
+
+	find a class or a resource, it first delegates the request to
+
+	the parent.
+
+	</p>
+
+
+
+	<p>Log4j only uses the default <code>Class.forName()</code>
+
+	mechanism for loading classes.  Resources are handled
+
+	similarly.  See the documentation for
+
+	<code>java.lang.ClassLoader</code> for more details.
+
+	</p>
+
+
+
+	<p>So, if you're having problems, try loading the class or
+
+	resource yourself.  If you can't find it, neither will
+
+	log4j. ;)
+
+	</p>
+
+
+
+      
+                                 <div class="question">
+             <a name="3.6">3.6 Is there a way to get log4j to automatically reload a
+
+      configuration file if it changes?</a>
+           </div>
+                      
+
+	<p>Yes.  Both the DOMConfigurator and the PropertyConfigurator support
+
+	automatic reloading through the <code>configureAndWatch</code> method.
+
+	See the API documentation for more details.
+
+	</p>
+
+
+
+
+
+	<p>Because the <code>configureAndWatch</code> launches a
+
+	separate wathdog thread, and because there is no way to stop
+
+	this thread in log4j 1.2, the <code>configureAndWatch</code>
+
+	method is unsafe for use in J2EE envrironments where
+
+	applications are recycled.
+
+	</p>
+
+	
+
+      
+                              <div class="faqSection">
+        <a name="4">Section 4.</a> Contributing to the project
+      </div>
+                                       
+
+      <p>This section includes questions about contributing to the
+
+      project</p>
+
+    
+                                 <div class="question">
+             <a name="4.1">4.1 Why should I donate my extensions to log4j back to the
+
+      project?
+
+      </a>
+           </div>
+                      
+
+	<p>Contrary to the GNU Public License (GPL) the Apache
+
+	Software License does not make any claims over your
+
+	extensions. By extensions, we mean totally new code that
+
+	invokes existing log4j classes. <em>You are free to do
+
+	whatever you wish with your proprietary log4j extensions.</em>
+
+	In particular, you may choose to never release your extensions
+
+	to the wider public.
+
+	</p>
+
+	
+
+	<p>We are very careful not to change the log4j client API so
+
+	that newer log4j releases are backward compatible with
+
+	previous versions. We are a lot less scrupulous with the
+
+	internal log4j API. Thus, if your extension is designed to
+
+	work with log4j version <code>n</code>, then when log4j
+
+	release version <code>n+1</code> comes out, you will probably
+
+	need to adapt your proprietary extensions to the new release.
+
+	</p>
+
+
+
+	<p>Thus, you will be forced to spend precious resources in
+
+	order to keep up with log4j changes. This is commonly referred
+
+	to as the "stupid-tax."  By donating the code and making it
+
+	part of the standard distribution, you save yourself the
+
+	unnecessary maintenance work.
+
+	</p>
+
+
+
+	<p>If your extensions are useful then someone will eventually
+
+	write an extension providing the same or very similar
+
+	functionality.  Your development effort will be wasted. Unless
+
+	the proprietary log4j extension is business critical, there is
+
+	little reason for not donating your extensions back to the
+
+	project.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="4.2">4.2 What should I keep in mind when contributing code?</a>
+           </div>
+                      
+
+	<ol>
+
+
+
+	  <li>
+
+	    <p>Write a test case for your contribution.</p>
+
+
+
+	    <p>There is nothing more irritating than finding the bugs
+
+	    in debugging (i.e. logging) code. Writing a test case
+
+	    takes some effort but is crucial for a widely used library
+
+	    such as log4j. Writing a test case will go a long way in
+
+	    earning you the respect of fellow developers. See the
+
+	    tests/ directory for exiting test cases.
+
+	    </p>
+
+	  </li>
+
+
+
+	  
+
+	  <li>
+
+	    <p>Stick to the existing indentation style even if you hate it.</p>
+
+	    
+
+	    <p>Alternating between indentation styles makes it hard to
+
+	    understand the source code. Make it a little harder on
+
+	    yourself but easier on others.
+
+	    </p>
+
+
+
+	    <p>Log4j has adopted a rather conservative approach by
+
+	    following the <a href="http://java.sun.com/docs/codeconv/">Code Conventions
+
+	    for the JavaTM Programming Language</a>. <b>We use 2 (two)
+
+	    spaces for indentation and no tabs.</b>
+
+	    </p>
+
+	  </li>
+
+
+
+	  <li>
+
+	    <p>Please do not both modify the code and change the
+
+	    indentation in a single commit.</p>
+
+	    
+
+	    <p>If you change the code and reformat it at the same time
+
+	    and then commit, the commit notification message will be
+
+	    hard to read. It will contain many diffs associated with
+
+	    the reformatting in addition to logical changes.
+
+	    </p>
+
+
+
+	    <p>If you must reformat and change the code, then perform
+
+	    each step separately. For example, reformat the code and
+
+	    commit. Following that, you can change the logic and
+
+	    commit. The two steps can be performed in the reverse
+
+	    order just as well. You can first change the logic and
+
+	    commit and only later reformat and commit.
+
+	    </p>
+
+
+
+	  </li>
+
+	  <li>
+
+	    <p>Make every effort to stick to the JDK 1.1 API.</p>
+
+	    
+
+	    <p>One of the important advantages of log4j is its
+
+	    compatibility with JDK 1.1.x.
+
+	    </p>
+
+	  </li>
+
+
+
+	  <li>
+
+	    <p>Always keep it simple, small and fast when
+
+	    possible.</p>
+
+
+
+	    <p>It's all about the application not about logging.</p>
+
+	  </li>
+
+	  
+
+	  <li>
+
+	    <p>Identify yourself as a contributor at the top of the
+
+	    relevant file.
+
+	    </p>
+
+	  </li>
+
+	  <li>
+
+	    <p>Take responsibility for your code.</p>
+
+	    
+
+	    <p>Authoring software is very much like running a marathon. It
+
+	    takes time and endurance.
+
+	    </p>
+
+	  </li>
+
+	  <li>
+
+	    <p>Did we mention sticking with the indentation style? </p>
+
+	  </li>
+
+	  <li><p>Did we mention writing test cases? </p>
+
+	  </li>
+
+	  
+
+	</ol>
+
+      
+                                 <div class="question">
+             <a name="4.3">4.3 How can I contribute a new question/answer to this
+
+      document?</a>
+           </div>
+                      
+
+	<p>Log4j uses <a href="http://jakarta.apache.org/velocity/anakia.html">velocity-anakia</a>
+
+	to generate its web-site, including this FAQ. We have devised
+
+	special macros to help us automatically generate labeled
+
+	question/answer pairs.
+
+	</p>
+
+
+
+	<p>If you are not a commiter, you can simply submit your new
+
+	question/answer pair to the log4j-dev@logging.apache.org
+
+	mailing list. The committers will take it from there.
+
+	</p>
+
+
+
+	<p>If you are a committer, then you must edit the
+
+	<em>/src/xdocs/faq.xml</em> file. The format of the file
+
+	should be self-evident. After you have made your changes, run
+
+	the command
+
+	</p>
+
+	<pre class="source">ant site</pre>
+
+
+
+	<p>After the appropriate transformation, your changes should
+
+	appear in the file <em>/docs/faq.html</em>.
+
+	</p>
+
+      
+                                                                
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/history.html b/trunk/docs/history.html
new file mode 100644
index 0000000..861e277
--- /dev/null
+++ b/trunk/docs/history.html
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki G�lc�">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Project history</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>Project history</strong></h1>
+                                    <p>The project's official URL is <a href="http://logging.apache.org/log4j">http://logging.apache.org/log4j</a>.
+      </p>
+                                                <p>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 <a href="http://www.semper.org">SEMPER</a> 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 <a href="http://www.zurich.ibm.com">IBM Zurich
+      Research Laboratory</a>. However, log4j is no longer associated
+      nor supported by IBM.
+      </p>
+                                                <p>Special thanks to M. Niksch from ZRL for his assistance on
+	many large and small matters. The Apache members, Pier
+	Fumagalli and Sam Ruby in particular, have been extremely
+	helpful in easing the move to Apache.
+      </p>
+                                                <p>The log4j logo was designed and kindly donated by Cyberlab SA of Switzerland.
+      </p>
+                                             
+            
+  
+                      <hr/>
+
+  
+                            
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/images/ceki-72x101.gif b/trunk/docs/images/ceki-72x101.gif
new file mode 100644
index 0000000..7c7f002
Binary files /dev/null and b/trunk/docs/images/ceki-72x101.gif differ
diff --git a/trunk/docs/images/chainsaw-fullscreen-small.jpg b/trunk/docs/images/chainsaw-fullscreen-small.jpg
new file mode 100644
index 0000000..e4de51f
Binary files /dev/null and b/trunk/docs/images/chainsaw-fullscreen-small.jpg differ
diff --git a/trunk/docs/images/chainsaw-fullscreen.jpg b/trunk/docs/images/chainsaw-fullscreen.jpg
new file mode 100644
index 0000000..14835d1
Binary files /dev/null and b/trunk/docs/images/chainsaw-fullscreen.jpg differ
diff --git a/trunk/docs/images/coverSmall.png b/trunk/docs/images/coverSmall.png
new file mode 100644
index 0000000..4b19db9
Binary files /dev/null and b/trunk/docs/images/coverSmall.png differ
diff --git a/trunk/docs/images/cyberlab15.gif b/trunk/docs/images/cyberlab15.gif
new file mode 100644
index 0000000..1856324
Binary files /dev/null and b/trunk/docs/images/cyberlab15.gif differ
diff --git a/trunk/docs/images/ecaward_finalist_logo.gif b/trunk/docs/images/ecaward_finalist_logo.gif
new file mode 100644
index 0000000..220896b
Binary files /dev/null and b/trunk/docs/images/ecaward_finalist_logo.gif differ
diff --git a/trunk/docs/images/logo.jpg b/trunk/docs/images/logo.jpg
new file mode 100644
index 0000000..5b6ede8
Binary files /dev/null and b/trunk/docs/images/logo.jpg differ
diff --git a/trunk/docs/images/mark-72x99.gif b/trunk/docs/images/mark-72x99.gif
new file mode 100644
index 0000000..8d50730
Binary files /dev/null and b/trunk/docs/images/mark-72x99.gif differ
diff --git a/trunk/docs/images/psmith.jpg b/trunk/docs/images/psmith.jpg
new file mode 100644
index 0000000..edde7ad
Binary files /dev/null and b/trunk/docs/images/psmith.jpg differ
diff --git a/trunk/docs/images/yshapira.bmp b/trunk/docs/images/yshapira.bmp
new file mode 100644
index 0000000..c2f2bdd
Binary files /dev/null and b/trunk/docs/images/yshapira.bmp differ
diff --git a/trunk/docs/index.html b/trunk/docs/index.html
new file mode 100644
index 0000000..a0aa6db
--- /dev/null
+++ b/trunk/docs/index.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki G�lc�">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                     <meta  name="keywords"  content="java, logging, tracing, component, framework, API, log4j"  />
+ 
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Introduction</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>Introduction</strong></h1>
+                                    <p>Inserting log statements into your code is a low-tech method
+	for debugging it.  It may also be the only way because
+	debuggers are not always available or applicable.  This is
+	often the case for distributed applications.</p>
+                                                <p>On the other hand, some people argue that log statements
+	pollute source code and decrease legibility. (We believe that
+	the contrary is true).  In the Java language where a
+	preprocessor is not available, log statements increase the
+	size of the code and reduce its speed, even when logging is
+	turned off.  Given that a reasonably sized application may
+	contain thousands of log statements, speed is of particular
+	importance.</p>
+                                                <p>With log4j it is possible to enable logging at runtime
+	without modifying the application binary. The log4j package is
+	designed so that these statements can remain in shipped code
+	without incurring a heavy performance cost. Logging behavior
+	can be controlled by editing a configuration file, without
+	touching the application binary.</p>
+                                                <p>Logging equips the developer with <i>detailed context</i> for
+	application failures. On the other hand, testing provides
+	quality assurance and confidence in the application. Logging
+	and testing should not be confused. They are
+	complementary. When logging is wisely used, it can prove to be
+	an essential tool.</p>
+                                                <p>One of the distinctive features of log4j is the notion of
+	<i>inheritance</i> in loggers. Using a logger
+	<em>hierarchy</em> it is possible to control which log
+	statements are output at arbitrarily fine granularity but also
+	great ease. This helps reduce the volume of logged output and
+	minimize the cost of logging.</p>
+                                                <p>The target of the log output can be a file, an
+	<code>OutputStream</code>, a <code>java.io.Writer</code>, a
+	remote log4j server, a remote Unix Syslog daemon, or many other output targets.</p>
+                                                <p>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 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.</p>
+                                                <p>The package is being constantly improved thanks to input from
+	users and code contributed by authors in the community.
+      </p>
+                                             
+            
+  
+                      <hr/>
+
+  
+                            
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/install-chainsaw.html b/trunk/docs/install-chainsaw.html
new file mode 100644
index 0000000..e4d385c
--- /dev/null
+++ b/trunk/docs/install-chainsaw.html
@@ -0,0 +1,123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- Content Stylesheet for Site -->
+
+    
+    
+    
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                        
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - $properties.getChild("title").getText()</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+           
+            
+  
+                <hr/>
+
+  
+                
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/trunk/docs/manual.html b/trunk/docs/manual.html
new file mode 100644
index 0000000..4fd86b7
--- /dev/null
+++ b/trunk/docs/manual.html
@@ -0,0 +1,1213 @@
+<html>
+<head>
+<title>log4j manual</title>
+</head>
+
+<body bgcolor="white">
+
+<center>
+  <h1>Short introduction to log4j</h1>
+
+  <font size="+2">Ceki G&uuml;lc&uuml;</font>
+  <br/><br/>
+  March 2002
+  <br/>
+</center>
+
+<p>
+    Copyright &#169; 2000-2006, The Apache Software Foundation.  
+    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+    The present short manual also borrows some text from 
+    <a href="https://www.qos.ch/shop/products/log4j/log4j-Manual.jsp">"<em>The
+      complete log4j manual</em>"</a>, which contains more detailed
+      and up to date information, by the same author (yours truly).
+</p>
+<h2>Abstract</h2>
+
+<p>This document describes the log4j API, its unique features and
+design rationale. Log4j is an open source project based on the work of
+many authors.  It allows the developer to control which log statements
+are output with arbitrary granularity. It is fully configurable at
+runtime using external configuration files.  Best of all, log4j has a
+gentle learning curve. Beware: judging from user feedback, it is also
+quite addictive.
+
+<h2>Introduction</h2>
+
+<p>Almost every large application includes its own logging or tracing
+API. In conformance with this rule, the E.U.  <a
+href="http://www.semper.org">SEMPER</a> project decided to write its
+own tracing API. This was in early 1996. After countless enhancements,
+several incarnations and much work that API has evolved to become
+log4j, a popular logging package for Java. The package is distributed
+under the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache Software License</a>, a
+fully-fledged open source license certified by the <a
+href="http://www.opensource.org">open source</a> initiative. The
+latest log4j version, including full-source code, class files and
+documentation can be found at <a
+href="http://logging.apache.org/log4j/"><b>http://logging.apache.org/log4j/</b></a>.
+By the way, log4j has been ported to the C, C++, C#, Perl, Python,
+Ruby, and Eiffel languages.
+
+<p>Inserting log statements into code is a low-tech method for
+debugging it. It may also be the only way because debuggers are not
+always available or applicable. This is usually the case for
+multithreaded applications and distributed applications at large.
+
+<p>Experience indicates that logging was an important component of the
+development cycle. It offers several advantages. It provides precise
+<em>context</em> about a run of the application. Once inserted into
+the code, the generation of logging output requires no human
+intervention.  Moreover, log output can be saved in a persistent medium
+to be studied at a later time. In addition to its use in the
+development cycle, a sufficiently-rich logging package can also be
+viewed as an auditing tool.
+
+<p>As Brian W. Kernighan and Rob Pike put it in their truly excellent
+book <i>"The Practice of Programming"</i>
+<pre>
+  As personal choice, we tend not to use debuggers beyond getting a
+  stack trace or the value of a variable or two. One reason is that it
+  is easy to get lost in details of complicated data structures and
+  control flow; we find stepping through a program less productive
+  than thinking harder and adding output statements and self-checking
+  code at critical places. Clicking over statements takes longer than
+  scanning the output of judiciously-placed displays. It takes less
+  time to decide where to put print statements than to single-step to
+  the critical section of code, even assuming we know where that
+  is. More important, debugging statements stay with the program;
+  debugging sessions are transient.
+</pre>
+
+<p>Logging does have its drawbacks. It can slow down an
+application. If too verbose, it can cause scrolling blindness. To
+alleviate these concerns, log4j is designed to be reliable, fast and
+extensible. Since logging is rarely the main focus of an application,
+the log4j API strives to be simple to understand and to use.
+
+<h2>Loggers, Appenders and Layouts</h2>
+
+<p>Log4j has three main components: <em>loggers</em>,
+<em>appenders</em> and <em>layouts</em>. These three types of
+components work together to enable developers to log messages according
+to message type and level, and to control at runtime how these
+messages are formatted and where they are reported.
+
+<h3>Logger hierarchy</h3>
+
+<p>The first and foremost advantage of any logging API over plain
+<code>System.out.println</code> resides in its ability to disable
+certain log statements while allowing others to print unhindered. This
+capability assumes that the logging space, that is, the space of all
+possible logging statements, is categorized according to some
+developer-chosen criteria. This observation had previously led us to
+choose <em>category</em> as the central concept of the
+package. However, since log4j version 1.2, <code>Logger</code> class
+has replaced the <code>Category</code> class. For those familiar with
+earlier versions of log4j, the <code>Logger</code> class can be
+considered as a mere alias to the <code>Category</code> class.
+
+<p>Loggers are named entities. Logger names are case-sensitive and
+they follow the hierarchical naming rule:
+
+<p>
+<table bgcolor="#EEEE99">
+ <tr>
+  <td>
+   <dl>
+     <dt><b>Named Hierarchy</b>
+
+     <dd><p>A logger is said to be an <em>ancestor</em> of another
+     logger if its name followed by a dot is a prefix of the
+     <em>descendant</em> logger name. A logger is said to be a
+     <em>parent</em> of a <em>child</em> logger if there are no
+     ancestors between itself and the descendant logger.
+
+
+   </dl>
+</table>
+
+
+<p>For example, the logger named <code>"com.foo"</code> is a parent
+of the logger named <code>"com.foo.Bar"</code>.  Similarly,
+<code>"java"</code> is a parent of <code>"java.util"</code> and an
+ancestor of <code>"java.util.Vector"</code>.  This naming scheme
+should be familiar to most developers.
+
+<p>The root logger resides at the top of the logger hierarchy. It
+is exceptional in two ways:
+
+<ol>
+<li> it always exists,
+<li> it cannot be retrieved by name.
+</ol>
+<p>Invoking the class static <a
+href="api/org/apache/log4j/Logger.html#getRootLogger()">Logger.getRootLogger</a>
+method retrieves it. All other loggers are instantiated and
+retrieved with the class static <a
+href="api/org/apache/log4j/Logger.html#getLogger()">Logger.getLogger</a>
+method. This method takes the name of the desired logger as a
+parameter. Some of the basic methods in the Logger class are listed
+below.
+
+<p><table>
+<tr bgcolor="CCCCCC">
+<td>
+<pre>
+  package org.apache.log4j;
+
+  public class <b>Logger</b> {
+
+    // Creation & retrieval methods:
+    public static Logger getRootLogger();
+    public static Logger getLogger(String name);
+
+    // printing methods:
+    public void debug(Object message);
+    public void info(Object message);
+    public void warn(Object message);
+    public void error(Object message);
+    public void fatal(Object message);
+
+    // generic printing method:
+    public void log(Level l, Object message);
+}
+</pre>
+</td>
+</table>
+
+<p>Loggers <em>may</em> be assigned levels. The set of possible
+levels, that is
+
+<a href="api/org/apache/log4j/Level.html#DEBUG">DEBUG</a>,
+<a href="api/org/apache/log4j/Level.html#INFO">INFO</a>,
+<a href="api/org/apache/log4j/Level.html#WARN">WARN</a>,
+<a href="api/org/apache/log4j/Level.html#ERROR">ERROR</a> and
+<a href="api/org/apache/log4j/Level.html#FATAL">FATAL</a>
+
+are defined in the <code><a
+href="api/org/apache/log4j/Level.html">org.apache.log4j.Level</a></code>
+class. Although we do not encourage you to do so, you may define
+your own levels by sub-classing the <code>Level</code> class. A
+perhaps better approach will be explained later on.
+
+<p>If a given logger is not assigned a level, then it inherits
+one from its closest ancestor with an assigned level. More
+formally:
+
+
+<p>
+<table bgcolor="#EEEE99">
+  <tr>
+  <td>
+   <dl>
+     <dt><b>Level Inheritance</b>
+
+     <dd><p>The <em>inherited level</em> for a given logger
+<i>C</i>, is equal to the first non-null level in the logger
+hierarchy, starting at <i>C</i> and proceeding upwards in the
+hierarchy towards the <code>root</code> logger.
+
+   </dl>
+</table>
+
+<p>To ensure that all loggers can eventually inherit a level,
+the root logger always has an assigned level.
+
+<p>Below are four tables with various assigned level values and the
+resulting inherited levels according to the above rule.
+
+<p>
+<table border="1" >
+  <tr><th>Logger<br>name</th><th>Assigned<br>level</th>
+    <th>Inherited<br>level</th></tr>
+    <tr align=left><td>root</td>    <td>Proot</td> <td>Proot</td></tr>
+    <tr align=left><td>X </td>      <td>none</td>  <td>Proot</td></tr>
+    <tr align=left><td>X.Y </td>    <td>none</td>  <td>Proot</td></tr>
+    <tr align=left><td>X.Y.Z</td>   <td>none</td>  <td>Proot</td></tr>
+    <caption align=bottom>Example 1</caption>
+</table>
+
+<p>In example 1 above, only the root logger is assigned a
+level. This level value, <code>Proot</code>, is inherited by the
+other loggers <code>X</code>, <code>X.Y</code> and
+<code>X.Y.Z</code>.
+
+
+<p>
+<table border="1">
+    <tr><th>Logger<br>name</th><th>Assigned<br>level</th>
+    <th>Inherited<br>level</th></tr>
+    <tr align=left><td>root</td>    <td>Proot</td> <td>Proot</td></tr>
+    <tr align=left><td>X </td>      <td>Px</td>    <td>Px</td></tr>
+    <tr align=left><td>X.Y </td>    <td>Pxy</td>   <td>Pxy</td></tr>
+    <tr align=left><td>X.Y.Z</td>   <td>Pxyz</td>  <td>Pxyz</td></tr>
+    <caption align=bottom>Example 2</caption>
+  </table>
+
+<p>In example 2, all loggers have an assigned level value. There
+is no need for level inheritence.
+
+<p><table border="1">
+    <tr><th>Logger<br>name</th><th>Assigned<br>level</th>
+    <th>Inherited<br>level</th></tr>
+    <tr align=left><td>root</td>    <td>Proot</td> <td>Proot</td></tr>
+    <tr align=left><td>X </td>      <td>Px</td>    <td>Px</td></tr>
+    <tr align=left><td>X.Y </td>    <td>none</td>  <td>Px</td></tr>
+    <tr align=left><td>X.Y.Z</td>   <td>Pxyz</td>  <td>Pxyz</td></tr>
+    <caption align=bottom>Example 3</caption>
+</table>
+
+<p>In example 3, the loggers <code>root</code>, <code>X</code> and
+<code>X.Y.Z</code> are assigned the levels <code>Proot</code>,
+<code>Px</code> and <code>Pxyz</code> respectively. The logger
+<code>X.Y</code> inherits its level value from its parent
+<code>X</code>.
+
+<table border=1>
+    <tr><th>Logger<br>name</th><th>Assigned<br>level</th>
+    <th>Inherited<br>level</th></tr>
+    <tr align=left><td>root</td>    <td>Proot</td> <td>Proot</td></tr>
+    <tr align=left><td>X </td>      <td>Px</td>    <td>Px</td></tr>
+    <tr align=left><td>X.Y </td>    <td>none</td>  <td>Px</td></tr>
+    <tr align=left><td>X.Y.Z</td>   <td>none</td>  <td>Px</td></tr>
+    <caption align=bottom>Example 4</caption>
+</table>
+
+<p>In example 4, the loggers <code>root</code> and <code>X</code>
+and are assigned the levels <code>Proot</code> and <code>Px</code>
+respectively. The loggers <code>X.Y</code> and <code>X.Y.Z</code>
+inherits their level value from their nearest parent <code>X</code>
+having an assigned level..
+
+
+<p>Logging requests are made by invoking one of the printing methods
+of a logger instance. These printing methods are
+
+<code>
+<a href="api/org/apache/log4j/Logger.html#debug(java.lang.Object)">debug</a>,
+
+<a href="api/org/apache/log4j/Logger.html#info(java.lang.Object)">info</a>,
+
+<a href="api/org/apache/log4j/Logger.html#warn(java.lang.Object)">warn</a>,
+<a href="api/org/apache/log4j/Logger.html#error(java.lang.Object)">error</a>,
+<a href="api/org/apache/log4j/Logger.html#fatal(java.lang.Object)">fatal</a>
+ and <a href="api/org/apache/log4j/Logger.html#log(org.apache.log4j.Level, java.lang.Object)">log</a></code>.
+
+
+<p>By definition, the printing method determines the level of a
+logging request. For example, if <code>c</code> is a logger
+instance, then the statement <code>c.info("..")</code> is a logging
+request of level INFO.
+
+<p>A logging request is said to be <em>enabled</em> if its level is
+higher than or equal to the level of its logger. Otherwise, the
+request is said to be <em>disabled</em>. A logger without an
+assigned level will inherit one from the hierarchy. This rule is
+summarized below.
+
+
+<p>
+<a name="selectionRule"><table bgcolor="#EEEE99">
+  <tr>
+  <td>
+      <dl>
+	<dt><b>Basic Selection Rule</b>
+
+	<dd><p>A log request of level <i>p</i> in a logger with
+	(either assigned or inherited, whichever is appropriate) level <i>q</i>, is enabled if <i> p &gt;=
+	q</i>.
+      </dl>
+</table>
+
+<p>This rule is at the heart of log4j. It assumes that levels are
+ordered. For the standard levels, we have <code>DEBUG &lt; INFO
+&lt; WARN &lt; ERROR &lt; FATAL</code>.
+
+<p>Here is an example of this rule.
+
+<p><table bgcolor="CCCCCC">
+<tr><td>
+<pre>
+
+   // get a logger instance named "com.foo"
+   Logger  logger = Logger.getLogger(<strong>"com.foo"</strong>);
+
+   // Now set its level. Normally you do not need to set the
+   // level of a logger programmatically. This is usually done
+   // in configuration files.
+   <strong>logger</strong>.setLevel(<font
+   color="0000AA"><strong>Level.INFO</strong></font>);
+
+   Logger barlogger = Logger.getLogger(<strong>"com.foo.Bar"</strong>);
+
+   // This request is enabled, because <font color="00AA00"><strong>WARN</strong></font> &gt;= <font color="0000AA"><strong>INFO</strong></font>.
+   logger.<font color="00AA00"><strong>warn</strong></font>("Low fuel level.");
+
+   // This request is disabled, because <font color="00AA00"><strong>DEBUG</strong></font> &lt; <font color="0000AA"><strong>INFO</strong></font>.
+   logger.<font color="00AA00"><strong>debug</strong></font>("Starting search for nearest gas station.");
+
+   // The logger instance barlogger, named "com.foo.Bar",
+   // will inherit its level from the logger named
+   // "com.foo" Thus, the following request is enabled
+   // because <font color="00AA00"><strong>INFO</strong></font> &gt;= <font color="0000AA"><strong>INFO</strong></font>.
+   barlogger.<font color="00AA00"><strong>info</strong></font>("Located nearest gas station.");
+
+   // This request is disabled, because <font color="00AA00"><strong>DEBUG</strong></font> &lt; <font color="0000AA"><strong>INFO</strong></font>.
+   barlogger.<font color="00AA00"><strong>debug</strong></font>("Exiting gas station search");
+</pre>
+</table>
+
+<p>Calling the <code>getLogger</code> method with the same name will
+always return a reference to the exact same logger object.
+
+<p>For example, in
+
+<table bgcolor="CCCCCC">
+<tr><td>
+<pre>
+   Logger x = Logger.getLogger("wombat");
+   Logger y = Logger.getLogger("wombat");</pre>
+</td>
+</table>
+<code>x</code> and <code>y</code> refer to <em>exactly</em> the same
+logger object.
+
+<p>Thus, it is possible to configure a logger and then to retrieve
+the same instance somewhere else in the code without passing around
+references. In fundamental contradiction to biological parenthood,
+where parents always preceed their children, log4j loggers can be
+created and configured in any order. In particular, a "parent"
+logger will find and link to its descendants even if it is
+instantiated after them.
+
+<p>Configuration of the log4j environment is typically done at
+application initialization. The preferred way is by reading a
+configuration file. This approach will be discussed shortly.
+
+<p>Log4j makes it easy to name loggers by <em>software
+component</em>.  This can be accomplished by statically instantiating
+a logger in each class, with the logger name equal to the fully
+qualified name of the class. This is a useful and straightforward
+method of defining loggers. As the log output bears the name of the
+generating logger, this naming strategy makes it easy to identify
+the origin of a log message.  However, this is only one possible,
+albeit common, strategy for naming loggers. Log4j does not restrict
+the possible set of loggers. The developer is free to name the
+loggers as desired.
+
+<p>Nevertheless, naming loggers after the class where they are
+located seems to be the best strategy known so far.
+
+<h2>Appenders and Layouts</h2>
+
+<p>The ability to selectively enable or disable logging requests based
+on their logger is only part of the picture. Log4j allows logging
+requests to print to multiple destinations. In log4j speak, an output
+destination is called an <em>appender</em>. Currently, appenders exist
+for the <a href="api/org/apache/log4j/ConsoleAppender.html">console</a>, <a
+href="api/org/apache/log4j/FileAppender.html">files</a>, GUI
+components, <a
+href="api/org/apache/log4j/net/SocketAppender.html">remote socket</a>
+servers,  <a
+href="api/org/apache/log4j/net/JMSAppender.html">JMS</a>,
+
+<a href="api/org/apache/log4j/nt/NTEventLogAppender.html"> NT
+Event Loggers</a>, and remote UNIX <a
+href="api/org/apache/log4j/net/SyslogAppender.html">Syslog</a>
+daemons. It is also possible to log <a href="api/org/apache/log4j/AsyncAppender.html">asynchronously</a>.
+
+<p>More than one appender can be attached to a logger.
+
+<p>The <a
+href="api/org/apache/log4j/Logger.html#addAppender(org.apache.log4j.Appender)">addAppender</a>
+method adds an appender to a given logger.
+
+<b>Each enabled logging
+request for a given logger will be forwarded to all the appenders in
+that logger as well as the appenders higher in the hierarchy.</b> In
+other words, appenders are inherited additively from the logger
+hierarchy. For example, if a console appender is added to the root
+logger, then all enabled logging requests will at least print on the
+console. If in addition a file appender is added to a logger, say
+<em>C</em>, then enabled logging requests for <em>C</em> and
+<em>C</em>'s children will print on a file <em>and</em> on the
+console. It is possible to override this default behavior so that
+appender accumulation is no longer additive by <a
+href="api/org/apache/log4j/Logger.html#setAdditivity(boolean)">setting
+the additivity flag</a> to <code>false</code>.
+
+<p>The rules governing appender additivity are summarized below.
+
+<p>
+<a name="additivity"><table bgcolor="#EEEE99">
+  <tr>
+  <td>
+      <dl>
+	<dt><b>Appender Additivity</b>
+
+	<dd><p>The output of a log statement of logger <i>C</i> will
+	go to all the appenders in <i>C</i> and its ancestors. This is
+	the meaning of the term "appender additivity".
+
+	<p>However, if an ancestor of logger <i>C</i>, say <i>P</i>,
+	has the additivity flag set to <code>false</code>, then
+	<i>C</i>'s output will be directed to all the appenders in
+	<i>C</i> and it's ancestors upto and including <i>P</i> but
+	not the appenders in any of the ancestors of <i>P</i>.
+
+	<p>Loggers have their additivity flag set to
+	<code>true</code> by default.
+      </dl>
+</table>
+
+
+<p>The table below shows an example:
+
+<p><table align=center border=3 cellpadding=10>
+  <tr rowspan="2">
+  <th>Logger<br>Name <th>Added<br>Appenders <th>Additivity<br>Flag <th>Output Targets <th>Comment
+
+<tr><td>root    <td>A1         <td>not applicable <td>A1
+
+    <td>The root logger is anonymous but can be accessed with the
+        Logger.getRootLogger() method. There is no default appender
+        attached to root.
+
+<tr><td>x       <td>A-x1, A-x2 <td>true <td>A1, A-x1, A-x2
+    <td>Appenders of "x" and root.
+
+<tr><td>x.y     <td>none       <td>true <td>A1, A-x1, A-x2
+    <td>Appenders of "x" and root.
+
+<tr><td>x.y.z   <td>A-xyz1     <td>true <td>A1, A-x1, A-x2, A-xyz1
+    <td>Appenders in "x.y.z", "x" and root.
+
+<tr><td>security        <td>A-sec	   <td><font color="blue">false</font>
+                                           <td>A-sec
+
+    <td>No appender accumulation since the additivity flag is set to
+        <code>false</code>.
+
+<tr><td>security.access <td>none <td> true <td> A-sec <td>Only
+    appenders of "security" because the additivity flag in "security" is
+    set to <code>false</code>.
+
+</table>
+
+
+<p>More often than not, users wish to customize not only the output
+destination but also the output format. This is accomplished by
+associating a <em>layout</em> with an appender. The layout is
+responsible for formatting the logging request according to the user's
+wishes, whereas an appender takes care of sending the formatted output
+to its destination.
+
+The <a
+href="api/org/apache/log4j/PatternLayout.html">PatternLayout</a>, part
+of the standard log4j distribution, lets the user specify the output
+format according to conversion patterns similar to the C language
+<code>printf</code> function.
+
+<p>For example, the PatternLayout with the conversion pattern "%r [%t]
+%-5p %c - %m%n" will output something akin to:
+
+<pre>
+176 [main] INFO  org.foo.Bar - Located nearest gas station.
+</pre>
+
+<p>The first field is the number of milliseconds elapsed since the
+start of the program.  The second field is the thread making the log
+request.  The third field is the level of the log statement. The
+fourth field is the name of the logger associated with the log
+request. The text after the '-' is the message of the statement.
+
+<p>Just as importantly, log4j will render the content of the log
+message according to user specified criteria. For example, if you
+frequently need to log <code>Oranges</code>, an object type used in
+your current project, then you can register an
+<code>OrangeRenderer</code> that will be invoked whenever an orange
+needs to be logged.
+
+<p>Object rendering follows the class hierarchy. For example, assuming
+oranges are fruits, if you register an <code>FruitRenderer</code>, all
+fruits including oranges will be rendered by the
+<code>FruitRenderer</code>, unless of course you registered an orange
+specific <code>OrangeRenderer</code>.
+
+<p>Object renderers have to implement the
+<a href="api/org/apache/log4j/or/ObjectRenderer.html">ObjectRenderer</a>
+interface.
+
+
+<h2>Configuration</h2>
+
+<p>Inserting log requests into the application code requires a fair
+amount of planning and effort. Observation shows that approximately 4
+percent of code is dedicated to logging. Consequently, even moderately
+sized applications will have thousands of logging statements embedded
+within their code.  Given their number, it becomes imperative to
+manage these log statements without the need to modify them manually.
+
+<p>The log4j environment is fully configurable programmatically.
+However, it is far more flexible to configure log4j using
+configuration files.  Currently, configuration files can be written in
+XML or in Java properties (key=value) format.
+
... 91238 lines suppressed ...

[logging-log4j1] 02/05: Tagging for 1.3 alpha 8 build

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to annotated tag v1.3alpha8
in repository https://gitbox.apache.org/repos/asf/logging-log4j1.git

commit e32ebd9e938a74dae45b680501dff40b9f9559be
Author: Mark Dwayne Womack <mw...@apache.org>
AuthorDate: Tue Jan 31 05:08:58 2006 +0000

    Tagging for 1.3 alpha 8 build
    
    git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/tags/v1.3alpha8/trunk@373711 13f79535-47bb-0310-9956-ffa450edef68