logging-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rpo...@apache.org
Subject svn commit: r1592539 - in /logging/log4j/log4j2/trunk: log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/ log4j-core/src/test/java/org/apache/logging/log4j/core/appe...
Date Mon, 05 May 2014 14:19:05 GMT
Author: rpopma
Date: Mon May  5 14:19:04 2014
New Revision: 1592539

URL: http://svn.apache.org/r1592539
Log:
LOG4J2-566 Made RollingRandomAccessFileAppender buffer size configurable, added JUnit tests.

Modified:
    logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
    logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
    logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
    logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
    logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
    logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java
    logging/log4j/log4j2/trunk/src/changes/changes.xml
    logging/log4j/log4j2/trunk/src/site/xdoc/manual/appenders.xml

Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java?rev=1592539&r1=1592538&r2=1592539&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
(original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
Mon May  5 14:19:04 2014
@@ -94,6 +94,14 @@ public final class RandomAccessFileAppen
     public String getFileName() {
         return this.fileName;
     }
+    
+    /**
+     * Returns the size of the file manager's buffer.
+     * @return the buffer size
+     */
+    public int getBufferSize() {
+        return getManager().getBufferSize();
+    }
 
     // difference from standard File Appender:
     // locking is not supported and buffering cannot be switched off

Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java?rev=1592539&r1=1592538&r2=1592539&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
(original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
Mon May  5 14:19:04 2014
@@ -52,8 +52,6 @@ public class RandomAccessFileManager ext
         this.randomAccessFile = file;
         this.advertiseURI = advertiseURI;
         this.isEndOfBatch.set(Boolean.FALSE);
-
-        // TODO make buffer size configurable?
         this.buffer = ByteBuffer.allocate(bufferSize);
     }
 
@@ -136,6 +134,14 @@ public class RandomAccessFileManager ext
     public String getFileName() {
         return getName();
     }
+    
+    /**
+     * Returns the buffer capacity.
+     * @return the buffer size
+     */
+    public int getBufferSize() {
+        return buffer.capacity();
+    }
 
     /** {@code OutputStream} subclass that does not write anything. */
     static class DummyOutputStream extends OutputStream {

Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java?rev=1592539&r1=1592538&r2=1592539&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
(original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
Mon May  5 14:19:04 2014
@@ -25,8 +25,8 @@ import org.apache.logging.log4j.core.Fil
 import org.apache.logging.log4j.core.Layout;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy;
-import org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager;
 import org.apache.logging.log4j.core.appender.rolling.RollingFileManager;
+import org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager;
 import org.apache.logging.log4j.core.appender.rolling.RolloverStrategy;
 import org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -36,6 +36,7 @@ import org.apache.logging.log4j.core.con
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.helpers.Booleans;
+import org.apache.logging.log4j.core.helpers.Integers;
 import org.apache.logging.log4j.core.layout.PatternLayout;
 import org.apache.logging.log4j.core.net.Advertiser;
 
@@ -54,11 +55,10 @@ public final class RollingRandomAccessFi
     private RollingRandomAccessFileAppender(final String name, final Layout<? extends
Serializable> layout,
             final Filter filter, final RollingFileManager manager, final String fileName,
             final String filePattern, final boolean ignoreExceptions,
-            final boolean immediateFlush, final Advertiser advertiser) {
+            final boolean immediateFlush, final int bufferSize, final Advertiser advertiser)
{
         super(name, layout, filter, ignoreExceptions, immediateFlush, manager);
         if (advertiser != null) {
-            final Map<String, String> configuration = new HashMap<String, String>(
-                    layout.getContentFormat());
+            final Map<String, String> configuration = new HashMap<String, String>(layout.getContentFormat());
             configuration.put("contentType", layout.getContentType());
             configuration.put("name", name);
             advertisement = advertiser.advertise(configuration);
@@ -113,6 +113,14 @@ public final class RollingRandomAccessFi
     public String getFilePattern() {
         return filePattern;
     }
+    
+    /**
+     * Returns the size of the file manager's buffer.
+     * @return the buffer size
+     */
+    public int getBufferSize() {
+        return ((RollingRandomAccessFileManager) getManager()).getBufferSize();
+    }
 
     /**
      * Create a RollingRandomAccessFileAppender.
@@ -126,6 +134,7 @@ public final class RollingRandomAccessFi
      * @param name The name of the Appender (required).
      * @param immediateFlush When true, events are immediately flushed. Defaults
      *            to "true".
+     * @param bufferSizeStr The buffer size, defaults to {@value RollingRandomAccessFileManager#DEFAULT_BUFFER_SIZE}.
      * @param policy The triggering policy. (required).
      * @param strategy The rollover strategy. Defaults to
      *            DefaultRolloverStrategy.
@@ -147,6 +156,7 @@ public final class RollingRandomAccessFi
             @PluginAttribute("append") final String append,
             @PluginAttribute("name") final String name,
             @PluginAttribute("immediateFlush") final String immediateFlush,
+            @PluginAttribute("bufferSize") final String bufferSizeStr,
             @PluginElement("Policy") final TriggeringPolicy policy,
             @PluginElement("Strategy") RolloverStrategy strategy,
             @PluginElement("Layout") Layout<? extends Serializable> layout,
@@ -160,6 +170,7 @@ public final class RollingRandomAccessFi
         final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
         final boolean isFlush = Booleans.parseBoolean(immediateFlush, true);
         final boolean isAdvertise = Boolean.parseBoolean(advertise);
+        final int bufferSize = Integers.parseInt(bufferSizeStr, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE);
 
         if (name == null) {
             LOGGER.error("No name provided for FileAppender");
@@ -167,14 +178,12 @@ public final class RollingRandomAccessFi
         }
 
         if (fileName == null) {
-            LOGGER.error("No filename was provided for FileAppender with name "
-                    + name);
+            LOGGER.error("No filename was provided for FileAppender with name " + name);
             return null;
         }
 
         if (filePattern == null) {
-            LOGGER.error("No filename pattern provided for FileAppender with name "
-                    + name);
+            LOGGER.error("No filename pattern provided for FileAppender with name " + name);
             return null;
         }
 
@@ -192,15 +201,14 @@ public final class RollingRandomAccessFi
             layout = PatternLayout.createLayout(null, null, null, null, null, null, null,
null);
         }
 
-
-        final RollingRandomAccessFileManager manager = RollingRandomAccessFileManager.getRollingRandomAccessFileManager(fileName,
filePattern,
-            isAppend, isFlush, policy, strategy, advertiseURI, layout);
+        final RollingRandomAccessFileManager manager = RollingRandomAccessFileManager.getRollingRandomAccessFileManager(
+                fileName, filePattern, isAppend, isFlush, bufferSize, policy, strategy, advertiseURI,
layout);
         if (manager == null) {
             return null;
         }
 
         return new RollingRandomAccessFileAppender(name, layout, filter, manager,
-                fileName, filePattern, ignoreExceptions, isFlush,
+                fileName, filePattern, ignoreExceptions, isFlush, bufferSize,
                 isAdvertise ? config.getAdvertiser() : null);
     }
 }

Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java?rev=1592539&r1=1592538&r2=1592539&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
(original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
Mon May  5 14:19:04 2014
@@ -33,7 +33,10 @@ import org.apache.logging.log4j.core.app
  * I/O.
  */
 public class RollingRandomAccessFileManager extends RollingFileManager {
-    static final int DEFAULT_BUFFER_SIZE = 256 * 1024;
+    /**
+     * The default buffer size
+     */
+    public static final int DEFAULT_BUFFER_SIZE = 256 * 1024;
 
     private static final RollingRandomAccessFileManagerFactory FACTORY = new RollingRandomAccessFileManagerFactory();
 
@@ -44,23 +47,22 @@ public class RollingRandomAccessFileMana
 
     public RollingRandomAccessFileManager(final RandomAccessFile raf, final String fileName,
             final String pattern, final OutputStream os, final boolean append,
-            final boolean immediateFlush, final long size, final long time,
+            final boolean immediateFlush, final int bufferSize, final long size, final long
time,
             final TriggeringPolicy policy, final RolloverStrategy strategy,
             final String advertiseURI, final Layout<? extends Serializable> layout)
{
         super(fileName, pattern, os, append, size, time, policy, strategy, advertiseURI,
layout);
         this.isImmediateFlush = immediateFlush;
         this.randomAccessFile = raf;
         isEndOfBatch.set(Boolean.FALSE);
-
-        // TODO make buffer size configurable?
-        buffer = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
+        this.buffer = ByteBuffer.allocate(bufferSize);
     }
 
-    public static RollingRandomAccessFileManager getRollingRandomAccessFileManager(final
String fileName, final String filePattern,
-            final boolean isAppend, final boolean immediateFlush, final TriggeringPolicy
policy,
-            final RolloverStrategy strategy, final String advertiseURI, final Layout<?
extends Serializable> layout) {
-        return (RollingRandomAccessFileManager) getManager(fileName, new FactoryData(filePattern,
isAppend, immediateFlush,
-            policy, strategy, advertiseURI, layout), FACTORY);
+    public static RollingRandomAccessFileManager getRollingRandomAccessFileManager(final
String fileName,
+            final String filePattern, final boolean isAppend, final boolean immediateFlush,
final int bufferSize, 
+            final TriggeringPolicy policy, final RolloverStrategy strategy, final String
advertiseURI, 
+            final Layout<? extends Serializable> layout) {
+        return (RollingRandomAccessFileManager) getManager(fileName, new FactoryData(filePattern,
isAppend, 
+                immediateFlush, bufferSize, policy, strategy, advertiseURI, layout), FACTORY);
     }
 
     public Boolean isEndOfBatch() {
@@ -121,6 +123,14 @@ public class RollingRandomAccessFileMana
                     + ex);
         }
     }
+    
+    /**
+     * Returns the buffer capacity.
+     * @return the buffer size
+     */
+    public int getBufferSize() {
+        return buffer.capacity();
+    }
 
     /**
      * Factory to create a RollingRandomAccessFileManager.
@@ -160,7 +170,8 @@ public class RollingRandomAccessFileMana
                     raf.setLength(0);
                 }
                 return new RollingRandomAccessFileManager(raf, name, data.pattern, new DummyOutputStream(),
data.append,
-                        data.immediateFlush, size, time, data.policy, data.strategy, data.advertiseURI,
data.layout);
+                        data.immediateFlush, data.bufferSize, size, time, data.policy, data.strategy,
data.advertiseURI,
+                        data.layout);
             } catch (final IOException ex) {
                 LOGGER.error("Cannot access RandomAccessFile {}) " + ex);
                 if (raf != null) {
@@ -193,6 +204,7 @@ public class RollingRandomAccessFileMana
         private final String pattern;
         private final boolean append;
         private final boolean immediateFlush;
+        private final int bufferSize;
         private final TriggeringPolicy policy;
         private final RolloverStrategy strategy;
         private final String advertiseURI;
@@ -204,13 +216,19 @@ public class RollingRandomAccessFileMana
          * @param pattern The pattern.
          * @param append The append flag.
          * @param immediateFlush
+         * @param bufferSize
+         * @param policy
+         * @param strategy
+         * @param advertiseURI
+         * @param layout
          */
         public FactoryData(final String pattern, final boolean append, final boolean immediateFlush,
-                           final TriggeringPolicy policy, final RolloverStrategy strategy,
final String advertiseURI,
-                           final Layout<? extends Serializable> layout) {
+                final int bufferSize, final TriggeringPolicy policy, final RolloverStrategy
strategy,
+                final String advertiseURI, final Layout<? extends Serializable> layout)
{
             this.pattern = pattern;
             this.append = append;
             this.immediateFlush = immediateFlush;
+            this.bufferSize = bufferSize;
             this.policy = policy;
             this.strategy = strategy;
             this.advertiseURI = advertiseURI;

Modified: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java?rev=1592539&r1=1592538&r2=1592539&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
(original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
Mon May  5 14:19:04 2014
@@ -75,6 +75,22 @@ public class RandomAccessFileManagerTest
         manager.flush();
         assertEquals(size, raf.length()); // all data written to file now
     }
+    
+    @Test
+    public void testConfigurableBufferSize() throws IOException {
+        final File file = File.createTempFile("log4j2", "test");
+        file.deleteOnExit();
+        final RandomAccessFile raf = new RandomAccessFile(file, "rw");
+        final OutputStream os = new RandomAccessFileManager.DummyOutputStream();
+        final int bufferSize = 4 * 1024;
+        assertNotEquals(bufferSize, RandomAccessFileManager.DEFAULT_BUFFER_SIZE);
+        
+        final RandomAccessFileManager manager = new RandomAccessFileManager(raf, file.getName(),
os,
+                false, bufferSize, null, null);
+        
+        // check the resulting buffer size is what was requested
+        assertEquals(bufferSize, manager.getBufferSize());
+    }
 
     @Test
     public void testWrite_dataExceedingMinBufferSize() throws IOException {

Modified: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java?rev=1592539&r1=1592538&r2=1592539&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java
(original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java
Mon May  5 14:19:04 2014
@@ -17,9 +17,6 @@
 
 package org.apache.logging.log4j.core.appender.rolling;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -29,6 +26,8 @@ import java.util.concurrent.locks.LockSu
 
 import org.junit.Test;
 
+import static org.junit.Assert.*;
+
 /**
  * Tests the RollingRandomAccessFileManager class.
  */
@@ -53,7 +52,7 @@ public class RollingRandomAccessFileMana
                 triggerSize);
         final RolloverStrategy rolloverStrategy = null;
         final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(raf,
-                file.getName(), "", os, append, flushNow, triggerSize, time,
+                file.getName(), "", os, append, flushNow, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE,
triggerSize, time,
                 triggerPolicy, rolloverStrategy, null, null);
 
         final int size = RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE * 3;
@@ -84,7 +83,7 @@ public class RollingRandomAccessFileMana
                 triggerSize);
         final RolloverStrategy rolloverStrategy = null;
         final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(raf,
-                file.getName(), "", os, append, flushNow, triggerSize, time,
+                file.getName(), "", os, append, flushNow, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE,
triggerSize, time,
                 triggerPolicy, rolloverStrategy, null, null);
 
         final int size = RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE * 3 + 1;
@@ -96,6 +95,27 @@ public class RollingRandomAccessFileMana
         manager.flush();
         assertEquals(size, raf.length()); // all data written to file now
     }
+    @Test
+    public void testConfigurableBufferSize() throws IOException {
+        final File file = File.createTempFile("log4j2", "test");
+        file.deleteOnExit();
+        final RandomAccessFile raf = new RandomAccessFile(file, "rw");
+        final OutputStream os = new RollingRandomAccessFileManager.DummyOutputStream();
+        final boolean append = false;
+        final boolean flushNow = false;
+        final long triggerSize = 0;
+        final long time = System.currentTimeMillis();
+        final TriggeringPolicy triggerPolicy = new SizeBasedTriggeringPolicy(triggerSize);
+        final int bufferSize = 4 * 1024;
+        assertNotEquals(bufferSize, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE);
+        final RolloverStrategy rolloverStrategy = null;
+        final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(raf,
+                file.getName(), "", os, append, flushNow, bufferSize, triggerSize, time,
+                triggerPolicy, rolloverStrategy, null, null);
+        
+        // check the resulting buffer size is what was requested
+        assertEquals(bufferSize, manager.getBufferSize());
+    }
 
     @Test
     public void testAppendDoesNotOverwriteExistingFile() throws IOException {
@@ -120,7 +140,7 @@ public class RollingRandomAccessFileMana
         final RollingRandomAccessFileManager manager = RollingRandomAccessFileManager
                 .getRollingRandomAccessFileManager(
                         //
-                        file.getAbsolutePath(), "", isAppend, true,
+                        file.getAbsolutePath(), "", isAppend, true, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE,
                         new SizeBasedTriggeringPolicy(Long.MAX_VALUE), //
                         null, null, null);
         manager.write(bytes, 0, bytes.length);
@@ -144,7 +164,7 @@ public class RollingRandomAccessFileMana
         final RollingRandomAccessFileManager manager = RollingRandomAccessFileManager
                 .getRollingRandomAccessFileManager(
                         //
-                        file.getAbsolutePath(), "", isAppend, true,
+                        file.getAbsolutePath(), "", isAppend, true, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE,
                         new SizeBasedTriggeringPolicy(Long.MAX_VALUE), //
                         null, null, null);
         assertTrue(manager.getFileTime() < expectedMax);
@@ -164,7 +184,7 @@ public class RollingRandomAccessFileMana
         final RollingRandomAccessFileManager manager = RollingRandomAccessFileManager
                 .getRollingRandomAccessFileManager(
                         //
-                        file.getAbsolutePath(), "", isAppend, true,
+                        file.getAbsolutePath(), "", isAppend, true, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE,
                         new SizeBasedTriggeringPolicy(Long.MAX_VALUE), //
                         null, null, null);
         assertEquals(file.lastModified(), manager.getFileTime());

Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1592539&r1=1592538&r2=1592539&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
+++ logging/log4j/log4j2/trunk/src/changes/changes.xml Mon May  5 14:19:04 2014
@@ -22,6 +22,9 @@
   </properties>
   <body>
     <release version="2.0-rc2" date="2014-MM-DD" description="Bug fixes and enhancements">
+      <action issue="LOG4J2-566" dev="rpopma" type="update" due-to="Luigi Alice">
+        Made RollingRandomAccessFileAppender buffer size configurable.
+      </action>
       <action issue="LOG4J2-520" dev="rpopma" type="fix" due-to="JavaTech, Andre Bogus">
         Resolved issue where AsyncAppender dropped events if queue still contained
         events when application is stopped.

Modified: logging/log4j/log4j2/trunk/src/site/xdoc/manual/appenders.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/site/xdoc/manual/appenders.xml?rev=1592539&r1=1592538&r2=1592539&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/site/xdoc/manual/appenders.xml (original)
+++ logging/log4j/log4j2/trunk/src/site/xdoc/manual/appenders.xml Mon May  5 14:19:04 2014
@@ -2395,6 +2395,11 @@ public class JpaLogEntity extends Abstra
 		              </td>
 					</tr>
           <tr>
+                      <td>bufferSize</td>
+                      <td>int</td>
+                      <td>The buffer size, defaults to 262,144 bytes (256 * 1024).</td>
+                    </tr>
+          <tr>
 						<td>layout</td>
 						<td>Layout</td>
 						<td>The Layout to use to format the LogEvent</td>



Mime
View raw message