You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2001/06/17 09:33:57 UTC
cvs commit: jakarta-log4j/docs/pub-support GrahamHamilton.html PayamMirrashidi.html
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:java-logging-input@eng.sun.com">java-logging-input@eng.sun.com</a>
-with a cc: to <a href="mailto:cgu@qos.ch">cgu@qos.ch</a>.</b>
+with a cc: to <a href="mailto:cgu@qos.ch">cgu@qos.ch</a>.</b>
+
+<p>By the way, the address <code>java-logging-input@eng.sun.com</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:hgomez@slib.fr">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 <jon@latchkey.com> <BR></SPAN><SPAN
-class=EUDORAHEADER>To: <jcp@apache.org>, Ceki G�lc�/A== <cgu@qos.ch>
+
<BR></SPAN><BR><BR>
<DIV>------ Forwarded Message</DIV>
<DIV>From: Graham Hamilton <kgh@eng.sun.com></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: cgu@qos.ch <BR></SPAN><SPAN
-class=EUDORAHEADER>From: "Payam Mirrashidi" <payam@rubynetworks.com>
+class=EUDORAHEADER>From: "Payam Mirrashidi" <payam_mir NOSPAM yahoo.com>
<BR></SPAN><SPAN class=EUDORAHEADER>To: <java-logging-input@eng.sun.com>
<BR></SPAN><SPAN class=EUDORAHEADER>Cc: <cgu@qos.ch> <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>payam@rubynetworks.com</DIV>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-cvs-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-cvs-help@jakarta.apache.org