Allow buffer size to be configurable instead of accepting the default
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 14 Sep 2009 15:43:41 +0000 (15:43 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 14 Sep 2009 15:43:41 +0000 (15:43 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@814708 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/juli/FileHandler.java
webapps/docs/logging.xml

index 7facb29..29d055e 100644 (file)
@@ -96,6 +96,11 @@ public class FileHandler
      * The PrintWriter to which we are currently logging, if any.
      */
     private PrintWriter writer = null;
+    
+    /**
+     * Log buffer size
+     */
+    private int bufferSize = 8192;
 
 
     // --------------------------------------------------------- Public Methods
@@ -212,7 +217,12 @@ public class FileHandler
             prefix = getProperty(className + ".prefix", "juli.");
         if (suffix == null)
             suffix = getProperty(className + ".suffix", ".log");
-
+        String sBufferSize = getProperty(className + ".bufferSize", "8192");
+        try {
+            bufferSize = Integer.parseInt(sBufferSize);
+        } catch (NumberFormatException ignore) {
+            //no op
+        }
         // Get encoding for the logging file
         String encoding = getProperty(className + ".encoding", null);
         if (encoding != null && encoding.length() > 0) {
@@ -284,7 +294,7 @@ public class FileHandler
                 prefix + date + suffix;
             String encoding = getEncoding();
             OutputStream os = new BufferedOutputStream(new FileOutputStream(
-                    pathname, true));
+                    pathname, true),bufferSize);
             writer = new PrintWriter(
                     (encoding != null) ? new OutputStreamWriter(os, encoding)
                             : new OutputStreamWriter(os), true);
index fd91648..4d2666e 100644 (file)
       boolean value.</li>
       <li>The root logger can define its set of handlers using a
       <code>.handlers</code> property.</li>
+      <li>Logging is buffered using a default buffer size of 8192 bytes.
+      To change buffersize, use the <code>bufferSize</code> property.</li>
       <li>System property replacement for property values which start with
       ${systemPropertyName}.</li>
     </ul>
@@ -163,6 +165,7 @@ handlers = 1catalina.org.apache.juli.FileHandler, \
 4admin.org.apache.juli.FileHandler.level = FINE
 4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
 4admin.org.apache.juli.FileHandler.prefix = admin.
+4admin.org.apache.juli.FileHandler.bufferSize = 16384
 
 java.util.logging.ConsoleHandler.level = FINE
 java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter