ceki 01/06/17 00:33:57 Modified: docs critique.html download.html index.html manual.html docs/pub-support GrahamHamilton.html PayamMirrashidi.html Log: Updated version of critique.html etc. Revision Changes Path 1.6 +165 -58 jakarta-log4j/docs/critique.html Index: critique.html =================================================================== RCS file: /home/cvs/jakarta-log4j/docs/critique.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- critique.html 2001/06/16 23:35:44 1.5 +++ critique.html 2001/06/17 07:33:54 1.6 @@ -16,12 +16,13 @@ <p>I consider it quite distasteful to criticize other people's work, especially in public. However, since the logging API included in JDK 1.4 will be potentially considered as the "standard", I feel compelled -to react. +to react. I am not alone in my criticism of JSR47, Greg Davis has his +own set of <a +href="http://www.swzoo.org/documents/miscellaneous/jsr047/">comments</a>. <p>The JDK 1.4 logging API is a result of the <a href="http://jcp.org/aboutJava/communityprocess/review/jsr047/index.html">JSR47 -process</a>, led by Graham Hamilton. I will refer to it as the JSR47 -API for the remainder of this document. +effort</a>, led by Graham Hamilton. <p>Before delving into the details, some historical perspective is in order. I am the founder of the log4j project. I participated in the @@ -40,13 +41,14 @@ formatter and layout will be used interchangeably in the remainder of this document. + <p>Even after a casual review it should be apparent that the log4j and JSR47 APIs are <em>very</em> similar. For one, they are the only logging APIs which are based on a named hierarchy. If you understand -one API, then understanding the other is trivial. There are -differences however. +one API, then understanding the concepts of the other should be a +breeze. There are differences however. -<h2>Parents vs. Children</h2> +<h2>On Parents and Children</h2> <p>In JSR47, a parent logger knows about its children but not the other way around. Children do not have links to their parent. For @@ -69,7 +71,8 @@ <code>wombat</code>. In other words, the levels for all the loggers descending from <code>wombat</code> are overwritten. This can be a very expensive operation for large trees. In particular, for the most -common case where one sets the level of the root logger. +common case where one sets the level of the root logger. However, +performance is not the point I am trying to make. <p>In log4j, changing the priority of a category involves the change of a single field. Children categories dynamically inherit the @@ -77,23 +80,23 @@ <p>It follows that with JSR47 if you configure the level for logger "foo.bar1" before configuring the level for "foo", then the latter -instruction will overwrite the first. It will be as if the first -instruction for configuring "foo.bar1" had never existed. This is not -a show stopper but it will bite you time and again. +instruction will overwrite the first exactly as if the first +instruction for configuring "foo.bar1" had never +existed. <em>Configuration order dependence is not a show stopper but +it is something that will bite you time and again.</em> -<p>In log4j, categories can be configured in any order. Thus, you do -not have to worry about configuration order. +<p>In contrast, in log4j categories can be configured in any +order. You never have to worry about configuration order. <p><b><li>Limited inheritance</b> <p>In JSR47, a logger does not walk the hierarchy to inherit its level -but possesses a copy of it. In fact, levels are a particular type of -an inherited property. +but possesses a copy of it. <p>Unfortunately, in the JSR47 API, handlers cannot be inherited -because it would be prohibitively expensive (and unmanageable) to let -each logger to contain a Vector of all inherited handlers, especially -in large trees. +because it would be prohibitively expensive to let each logger to +contain a distinct Vector of all inherited handlers, especially in +large trees. <p>To circumvent this problem by JSR47 defines global handlers. A logger logs to global handlers and to the handlers attached to itself @@ -105,12 +108,18 @@ appenders attached to its ancestors. <p>This might not seem like much until the day you need handler -inheritance. +inheritance; probably the day after you decide to adopt a logging API. <p>Similarly, in log4j resource bundles are inherited from the -hierarchy. In JSR47, a resource bundle must be attached to one logger -at a time making resource bundles and hence internationalization quite -unmanageable. +hierarchy. In JSR47, a resource bundle <em>must</em> be attached to +each logger individually. There is no resource bundle inheritance in +JSR47. In practice, this means that you have to choose between +internationalization and the benefits of the named logger +hierarchy. It's one or the other. + +<p>This is particularly surprising since support for +internationalization is advocated as one of the big advantages of the +JSR47 API. </ol> @@ -160,12 +169,13 @@ <p>There are many other details in which log4j differs from JSR47. Even if the log4j core is small, the project contains a total of over 30'000 lines of well-tested code. JSR47 contains about 5'000 -lines of code. +lines of code. -<p>Log4j has been around for a number of years and is being used in -thousands of projects. Our site gets over 500 downloads each and every -day, and the numbers are on the rise. Log4j has been ported to C++ -and Python. Companies are also offering commercial products extending +<p>Log4j has been around for a number of years, enjoys the support of +five active developers (committers) and is being used in thousands of +projects. Our site gets over 500 downloads each and every day, and the +numbers are on the rise. Log4j has been ported to C++ and +Python. Companies are also offering commercial products extending log4j. <p>Here is a short list of opensource projects that are known to use @@ -175,20 +185,49 @@ <li><a href="http://www.jboss.org">JBoss</a> <li><a href="http://www.free-project.org/">Free E-Democracy Project</a> <li><a href="http://www.jcorporate.com/html/products/expresso/logging.html">Espresso</a> +<li><a href="http://www.opensymphony.com/guidelines/logging.jsp">OpenSymphony (OSCache, SiteMesh, ...)</a> <li><a href="http://wired2.web.cern.ch/wired2/">WIRED</a> <li><a href="http://jakarta.apache.org/turbine/index.html">Turbine</a> +<li><a href="http://jakarta.apache.org/velocity/index.html">Velocity</a> <li><a href="http://java.freehep.org">FreeHEP</a> <li><a href="http://theserverside.com">TheServerSide</a> -<li><a href="http://www.opensymphony.com/guidelines/logging.jsp">OpenSymphony (OSCache, SiteMesh, ...)</a> -<li><a href="http://www.jcorporate.com/html/products/expresso/logging.html">Expresso Framework</a> -<li><a href="http://jrf.sourceforge.net">jRelationalFramework</a> + </ul> + + +<p>By the way, log4j runs fine under JDK 1.1 and above. JSR 47 will +run under JDK 1.4 and only under JDK 1.4. Interestingly enough, no +package shipped with JDK 1.4 is using the JSR47 API. + +<p>Brian R. Gilstrap has <A +href="http://javalogging.sourceforge.net/">re-written</a> JSR47 API to +run under JDK 1.2 and 1.3. He has also published an <a +href="http://www.ociweb.com/jnb/archive/jnbJun2001.html">article</a> +in JavaWorld. This is all very promising but since +<code>java.util.logging</code> is under the <code>java.*</code> +namespace, when running under JDK 1.3, you will systematically +encounter: +<pre> +Exception in thread "main" java.lang.ExceptionInInitializerError: java.lang.SecurityException: Prohibited package name: java.util.logging + at java.lang.ClassLoader.defineClass(ClassLoader.java:477) + at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111) + at java.net.URLClassLoader.defineClass(URLClassLoader.java:248) + at java.net.URLClassLoader.access$100(URLClassLoader.java:56) + at java.net.URLClassLoader$1.run(URLClassLoader.java:195) + at java.security.AccessController.doPrivileged(Native Method) + at java.net.URLClassLoader.findClass(URLClassLoader.java:188) + at java.lang.ClassLoader.loadClass(ClassLoader.java:297) + at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286) + at java.lang.ClassLoader.loadClass(ClassLoader.java:253) + at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313) +</pre> -<p>By the way, log4j runs fine under JDK 1.1. JSR 47 will run under -JDK 1.4 and only under JDK 1.4. Interestingly enough, no package -shipped with JDK 1.4 is using the JSR47 API. +<p>Jochen Hiller had observed this problem in early 2001 when he +implemented the JSR47 API by wrapping log4j. + + <h2>Error Handling</h2> In JSR 47 when an error occurs then either a @@ -219,22 +258,53 @@ <h2>Performance</h2> -<p>In log4j, caller localization information is optional. In JSR47 it -is always extracted. Since the extraction of caller localization is -slow, in the common case where caller information is not needed, log4j -will log the same information at least 4 times faster. +<p>This is a widely misunderstood topic, even by experts. In log4j, +performance must be studied in three distinct cases: when logging is +turned off, when turned on but due to the comparison of the log +statement priority and category priority not enabled, and when +actually logging. Please refer to the <a +href="manual.html#performance">log4j manual</a> for a more detailed +discussion of log4j performance. + +<p>When logging is turned on, log4j will be about three times slower +to decide whether a log statement is enabled or not. This is due to +the dynamic nature of log4j which requires it to walk the +hierarchy. To give you an idea about the figures involved, we are +talking about 90 <em>nanoseconds</em> instead of 30 +<em>nanoseconds</em> on a 800Mhz Intel processor. In other words, one +million log statements will cost under a second in both environments. + +<p>When log4j logging is turned off entirely, walking the hierarchy is +not necessary. In this case, log4j will perform as well as JSR47. + +<p>In log4j, caller localization information is optional whereas in +JSR47 it is always extracted. Since the extraction of caller +localization is a very slow operation, in the common case where caller +information is not needed, log4j will log the same information 4 to +100 times faster. + +</ol> + <h2>Lobby Sun</h2> -<p>If you feel that these differences are important, then this is your -chance to lobby Sun to adopt log4j as the logging API shipped with JDK -1.4. Given enough demand it is still possible to modify the JSR47 -API. This will be much harder once JDK 1.4 ships. +<p>If you feel that these differences are important, then this the +time to lobby Sun to adopt log4j as the logging API shipped with JDK +1.4. Since the JSR47 has not been yet reached final specification +stage nor formally approved, assuming enough demand, it should be +still possible to modify the JSR47 API. This will be much harder once +JDK 1.4 ships. Apparently, even the JSR47 experts group is divided on +the issue. <p><b>Please direct your polite and personalized request to <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> -with a cc: to <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>.</b> +with a cc: to <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>.</b> + +<p>By the way, the address <code>[EMAIL PROTECTED]</code> +is not a mailing list for the JSR47 experts group. From what I hear, +the mailing list address for JSR47 experts group is considered +confidential information. <p>Below is a list of individuals who have written to Sun, with the vast majority pushing for the adoption of log4j. I am very grateful @@ -242,21 +312,23 @@ insightful. <p><UL> - <li><p><a href="pub-support/AlexBlewitt.html">AlexBlewitt</a> <li><p><a href="pub-support/FrankBaxter.html">Frank Baxter</a> <li><p><a href="pub-support/EllisTeer.html">Ellis Teer</a> <li><p><a href="pub-support/BrentSprecher.html">Brent Sprecher</a> <li><p><a href="pub-support/JasonKitcat.html">Jason Kitcat</a> -<li><p><a href="pub-support/AndyDePue.html">Andy DePue</a> +<li><p><a href="pub-support/AndyDePue.html">Andy DePue</a> and his <a href="pub-support/AndyDePue2.html">follow up</a> +<li><p><a href="pub-support/BenjaminRussellStocum.html">Benjamin Russell Stocum</a> <li><p><a href="pub-support/DanielSavarese.html">Daniel F. Savarese</a> -<li><p><a href="pub-support/JonStevens.html">Jon Stevens</a> +<li><p>Jon Stevens +<li><p><a href="pub-support/RichardDallaway.html">Richard Dallaway</a> +<li><p><a href="pub-support/JeffTurner.html">Jeff Turner</a> <li><p><a href="pub-support/GuyLichtman.html">Guy Lichtman</a> <li><p><a href="pub-support/AndersKristensen.html">Anders Kristensen</a> <li><p><a href="pub-support/MichaelMoser.html">Michael Moser</a> <li><p><a href="pub-support/ChristopherTaylor.html">Christopher Taylor</a> <li><p><a href="pub-support/PaulGrinchenko.html">Paul Grinchenko</a> -<li><p><a href="pub-support/CourtDemas.html">Court Demas</a> +<li><p><a href="pub-support/CourtDemas.html">Court Demas</a> and his <a href="pub-support/CourtDemas2.html">follow up</a> <li><p><a href="pub-support/NelsonMinar.html">Nelson Minar</a> <li><p><a href="pub-support/RobertMahoney.html">Robert Mahoney</a> <li><p><a href="pub-support/HenrikLundahl.html">Henrik Lundahl</a> @@ -264,7 +336,7 @@ <li><p><a href="pub-support/EndreStolsvik.html">Endre Stølsvik</a> <li><p><a href="pub-support/KnutErikBallestad.html">Knut Erik Ballestad</a> <li><p><a href="pub-support/JohnVolkar.html">John Volkar </a> -<li><p><a href="pub-support/HenrikFredholm.html">Henrik Fredholm</a> +<li><p><a href="pub-support/HenrikFredholm.html">Henrik Fredholm</a> and his <a href="pub-support/HenrikFredholm2.html">follow up</a> to Graham. <li><p><a href="pub-support/WilliamJaynes.html">William Jaynes</a> <li><p><a href="pub-support/MichaelStacey.html">Michael Stacey</a> <li><p><a href="pub-support/StacyCurl.html">Stacy Curl</a> @@ -302,12 +374,50 @@ <li><p><a href="pub-support/SorenHilmer.html">Søren Hilmer</a> <li><p><a href="pub-support/MaheshBhat.html">Mahesh Bhat</a> <li><p><a href="pub-support/JeffLinwood.html">Jeff Linwood</a> +<li><p><a href="pub-support/PeterMeulmeester.html">Peter Meulmeester</a> +<li><p><a href="pub-support/MichaelDuffy.html">Michael Duffy</a> +<li><p><a href="pub-support/BillGriffith.html">Bill Griffith</a> +<li><p><a href="pub-support/DanielBram.html">Daniel Bram</a> +<li><p><a href="pub-support/ChrisMein.html">Chris Mein</a> +<li><p><a href="pub-support/GuyNirpaz.html">Guy Nirpaz</a> +<li><p><a href="pub-support/GrayJones.html">Gray Jones</a> +<li><p><a href="pub-support/CarlosPerez.html">Carlos Perez</a> +<li><p><a href="pub-support/PaulMichaelReilly.html">Paul Michael Reilly</a> +<li><p><a href="pub-support/MarcusAhnve.html">Marcus Ahnve</a> +<li><p><a href="pub-support/DavidDuddleston.html">David Duddleston</a> +<li><p><a href="pub-support/BrianPaulsen.html">Brian Paulsen</a> +<li><p><a href="pub-support/AlexFernandez.html">Alex Fernández</a> +<li><p><a href="pub-support/DanielStephan.html">Daniel Stephan</a> +<li><p><a href="pub-support/AlexanderEvsukov.html">Alexander Evsukov</a> +<li><p><a href="pub-support/StevenSagaert.html">Steven Sagaert</a> +<li><p><a href="pub-support/DougErickson.html">Doug Erickson</a> +<li><p><a href="pub-support/ScottGilpin.html">Scott Gilpin </a> +<li><p><b><a href="pub-support/NateSammons.html">Nate Sammons</a></b> author of <a href="http://protomatter.sourceforge.net">Protomatter Syslog</a> +<li><p><a href="pub-support/StephanSchmidt.html">Stephan J. Schmidt</a> +<li><p><a href="pub-support/JochenBedersdorfer.html">Jochen Bedersdorfer</a> +<li><p><a href="pub-support/BalajiKithiganahalli.html">Balaji Kithiganahalli</a> +<li><p><a href="pub-support/ChrisYearsley.html">Chris Yearsley</a> +<li><p><a href="pub-support/ScottFleming.html">Scott Fleming</a> +<li><p><a href="pub-support/PaulCraven.html">Paul Craven</a> +<li><p><a href="pub-support/BruceKroeze.html">Bruce Kroeze</a> +<li><p><a href="pub-support/AndrewHarris.html">Andrew Harris</a> <!-- + + + +<li><p><a href="pub-support/ .html"></a> +<li><p><a href="pub-support/ .html"></a> +<li><p><a href="pub-support/ .html"></a> +<li><p><a href="pub-support/ .html"></a> <li><p><a href="pub-support/ .html"></a> <li><p><a href="pub-support/ .html"></a> <li><p><a href="pub-support/ .html"></a> +<li><p><a href="pub-support/ .html"></a> +<li><p><a href="pub-support/ .html"></a> + + --> @@ -330,19 +440,16 @@ sources and we've tried to support a wide set of requirements. </pre> -<p>Unfortunately, it is becoming increasingly clear that the resulting -API is unlikely to meet a wide set of requirements, if any. The -apparent failure of JSR47 API may be the inevitable consequence of the -steamroller commonly referred to as the Java Community Process. <a +<p>Unfortunately, given the uproar that this API is generating, it is +becoming increasingly clear that the resulting API is unlikely to meet +a wide set of requirements. The apparent failure of JSR47 API may be +the inevitable consequence of the Java Community Process. <a href="http://www.zdnet.com/eweek/stories/general/0,11011,2666270,00.html">Michael -C. Daconta</a> has some interesting comments on the JCP. - -<p>Neither side will win this match by a knockout. However, a victory -by points in our favor is a distinct possibility. You are very much -encouraged to continue writing to Sun. Regardless of the outcome, -given the resourcefulness of our community, we will continue to -innovate and build on the previous success of log4j. - +C. Daconta</a> has some interesting comments on the JCP. All said and +done, Java remains a wonderful computing platform. Sun deserves +credit for their ongoing investment. They have also introduced a +number of amazingly innovative APIs. However, no one gets it right +<em>all</em> the time. </body> </HTML> 1.28 +5 -4 jakarta-log4j/docs/download.html Index: download.html =================================================================== RCS file: /home/cvs/jakarta-log4j/docs/download.html,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- download.html 2001/06/07 21:10:00 1.27 +++ download.html 2001/06/17 07:33:54 1.28 @@ -122,7 +122,11 @@ <tr><td><br/></td></tr> <tr><td> <blockquote> - <p>Download version 1.1.2 including <i>full source code</i>, class files + <hr /> + <h2>Join our <a href="critique.html">campaign</a> to influence the JSR47 API. +</h2> + <hr /> + <p>Download version 1.1.2 including <i>full source code</i>, class files and documentation in <a href="../jakarta-log4j-1.1.2.tar.gz"><b>TAR.GZ</b></a> format or in <a href="../jakarta-log4j-1.1.2.zip"><b>ZIP</b></a> format. You may @@ -133,9 +137,6 @@ <p>We also maintain a list of <a href="earlier.html">earlier versions</a> of log4j for download, intended for the curious paleontologist.</p> - <p>Thanks to <a href="mailto:[EMAIL PROTECTED]">Henri Gomez</a>, Linux -users can now fetch log4j in RPM format at <a href="http://rpmized.free.fr">http://rpmized.free.fr</a> or -alternatively at <a href="ftp://ftp.falsehope.com/home/gomez/log4j/">ftp://ftp.falsehope.com/home/gomez/log4j/</a>.</p> </blockquote> </p> </td></tr> 1.11 +5 -1 jakarta-log4j/docs/index.html Index: index.html =================================================================== RCS file: /home/cvs/jakarta-log4j/docs/index.html,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- index.html 2001/05/20 15:03:06 1.10 +++ index.html 2001/06/17 07:33:54 1.11 @@ -122,7 +122,11 @@ <tr><td><br/></td></tr> <tr><td> <blockquote> - <p>Inserting log statements into your code is a low-tech method for + <hr /> + <h2>Join our <a href="critique.html">campaign</a> to influence the JSR47 API. +</h2> + <hr /> + <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> 1.22 +15 -28 jakarta-log4j/docs/manual.html Index: manual.html =================================================================== RCS file: /home/cvs/jakarta-log4j/docs/manual.html,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- manual.html 2001/06/12 22:24:16 1.21 +++ manual.html 2001/06/17 07:33:54 1.22 @@ -267,30 +267,16 @@ of a category instance. These printing methods are <code> -<a href="api/org/apache/log4j/Category.html#debug(java.lang.Object)">debug</a> -</code>, +<a href="api/org/apache/log4j/Category.html#debug(java.lang.Object)">debug</a>, -<code> -<a href="api/org/apache/log4j/Category.html#info(java.lang.Object)">info</a> -</code>, - -<code> -<a href="api/org/apache/log4j/Category.html#warn(java.lang.Object)">warn</a> -</code>, - -<code> -<a href="api/org/apache/log4j/Category.html#error(java.lang.Object)">error</a> -</code>, +<a href="api/org/apache/log4j/Category.html#info(java.lang.Object)">info</a>, -<code> +<a href="api/org/apache/log4j/Category.html#warn(java.lang.Object)">warn</a>, +<a href="api/org/apache/log4j/Category.html#error(java.lang.Object)">error</a>, <a href="api/org/apache/log4j/Category.html#fatal(java.lang.Object)">fatal</a> -</code>, -and + and <a href="api/org/apache/log4j/Category.html#log(org.apache.log4j.Priority, java.lang.Object)">log</a></code>. -<code> -<a href="api/org/apache/log4j/Category.html#log(org.apache.log4j.Priority, java.lang.Object)">log</a></code>. - By definition, the printing method determines the priority of a logging request. For example, if <code>c</code> is a category instance, then the statement <code>c.info("..")</code> is a @@ -1000,7 +986,7 @@ category hierarchy. -<h2>Performance</h2> +<a name="performance"><h2>Performance</h2> <p>One of the often-cited arguments against logging is its computational cost. This is a legitimate concern as even moderately @@ -1011,12 +997,12 @@ <p>The user should be aware of the following performance issues. <ol> - <li>Logging performance when logging is turned off. + <b><li>Logging performance when logging is turned off.</b> <p>When logging is <a - href="api/org/apache/log4j/BasicConfigurator.html#disableAll()">turned + href="api/org/apache/log4j/Hierarchy.html#disableAll()">turned off entirely</a> or just for a <a - href="api/org/apache/log4j/BasicConfigurator.html#disable(org.apache.log4j.Priority)">set + href="api/org/apache/log4j/Hierarchy.html#disable(org.apache.log4j.Priority)">set of priorities</a>, the cost of a log request consists of a method invocation plus an integer comparison. On a 233 MHz Pentium II machine this cost is typically in the 5 to 50 nanosecond range. @@ -1069,8 +1055,9 @@ gain. - <p><li> The performance of deciding whether to log or not to log when - logging is turned on. + <p><b><li>The performance of deciding whether to log or not to log when + logging is turned on.</b> + </p> <p>This is essentially the performance of walking the category hierarchy. When logging is turned on, log4j still needs to compare @@ -1089,10 +1076,10 @@ significantly improves the speed of the walk, especially in "sparse" hierarchies. - <p>The typical cost of walking the hierarchy is in the range of - 5 to 15 microseconds, again on a 233MHz Pentium II machine. + <p>The typical cost of walking the hierarchy is typically 3 + times slower than when logging is turned off entirely. - <p><li>Actual logging. + <p><b><li>Actual logging.</b> <p>This is the cost of formatting the log output and sending it to its target destination. Here again, a serious effort was made to 1.2 +2 -31 jakarta-log4j/docs/pub-support/GrahamHamilton.html Index: GrahamHamilton.html =================================================================== RCS file: /home/cvs/jakarta-log4j/docs/pub-support/GrahamHamilton.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- GrahamHamilton.html 2001/06/14 10:07:03 1.1 +++ GrahamHamilton.html 2001/06/17 07:33:56 1.2 @@ -3,7 +3,7 @@ class=EUDORAHEADER>Date: Wed, 13 Jun 2001 20:00:32 -0700 <BR></SPAN><SPAN class=EUDORAHEADER>Subject: FW: Log4J Vote <BR></SPAN><SPAN class=EUDORAHEADER>From: Jon Stevens <[EMAIL PROTECTED]> <BR></SPAN><SPAN -class=EUDORAHEADER>To: <[EMAIL PROTECTED]>, Ceki Gülcü/A== <[EMAIL PROTECTED]> + <BR></SPAN><BR><BR> <DIV>------ Forwarded Message</DIV> <DIV>From: Graham Hamilton <[EMAIL PROTECTED]></DIV> @@ -38,34 +38,5 @@ thanks</DIV> <DIV> - Graham</DIV><BR><BR><BR> -<DIV>Jon Stevens wrote:</DIV> -<DIV>> </DIV> -<DIV>> Dear Members of JSR47:</DIV> -<DIV>> </DIV> -<DIV>> This is my vote to drop whatever you have for JDK1.4 and use Log4J as -the</DIV> -<DIV>> standard instead. Using an open source implementation of a Logging -system is</DIV> -<DIV>> highly preferable to using something that has been defined behind the -walls</DIV> -<DIV>> of the JCP because Log4J has been able to take input from more people -over</DIV> -<DIV>> time and this has helped create a more useful product. I also believe -Ceki</DIV> -<DIV>> is a wizard when it comes to designing Logging systems.</DIV> -<DIV>> </DIV> -<DIV>> His Critique on his website is also well written and shows many of -the</DIV> -<DIV>> problems with JSR47. Even if you do make the modifications that he -suggests,</DIV> -<DIV>> it would be a duplication of what is already available and that seems -quite</DIV> -<DIV>> unnecessary to have two implementations of the exact same thing.</DIV> -<DIV>> </DIV> -<DIV>> thanks,</DIV> -<DIV>> </DIV> -<DIV>> -jon stevens</DIV> -<DIV>> Member: JSR-053, JSR-107</DIV> -<DIV>> Member: Apache Software Foundation</DIV> -<DIV>> Co-Founder: Jakarta Apache Project</DIV><BR> + <DIV>------ End of Forwarded Message</DIV> 1.2 +2 -3 jakarta-log4j/docs/pub-support/PayamMirrashidi.html Index: PayamMirrashidi.html =================================================================== RCS file: /home/cvs/jakarta-log4j/docs/pub-support/PayamMirrashidi.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PayamMirrashidi.html 2001/06/14 10:07:03 1.1 +++ PayamMirrashidi.html 2001/06/17 07:33:56 1.2 @@ -1,11 +1,11 @@ <SPAN class=EUDORAHEADER>Delivered-To: [EMAIL PROTECTED] <BR></SPAN><SPAN -class=EUDORAHEADER>From: "Payam Mirrashidi" <[EMAIL PROTECTED]> +class=EUDORAHEADER>From: "Payam Mirrashidi" <payam_mir NOSPAM yahoo.com> <BR></SPAN><SPAN class=EUDORAHEADER>To: <[EMAIL PROTECTED]> <BR></SPAN><SPAN class=EUDORAHEADER>Cc: <[EMAIL PROTECTED]> <BR></SPAN><SPAN class=EUDORAHEADER>Subject: Comment on JSR 47 <BR></SPAN><SPAN class=EUDORAHEADER>Date: Wed, 13 Jun 2001 19:11:21 -0700 <BR></SPAN><SPAN class=EUDORAHEADER>Organization: Ruby Networks, Inc. <BR></SPAN><SPAN -class=EUDORAHEADER>X-Mailer: Microsoft Outlook Express 5.50.4522.1200 + <BR></SPAN><BR> <DIV>JSR-00047 Expert Group:</DIV><BR> <DIV>I am writing in response to a mail by Ceki Gulcu asking for support for @@ -85,4 +85,3 @@ <DIV>allow better, more expressive, runtime configuration.</DIV><BR> <DIV>----</DIV> <DIV>Payam Mirrashidi</DIV> -<DIV>[EMAIL PROTECTED]</DIV> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]