You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ca...@apache.org on 2009/05/12 06:45:21 UTC

svn commit: r773779 - in /logging/log4j/trunk/src: changes/changes.xml main/java/org/apache/log4j/jdbc/JDBCAppender.java main/java/org/apache/log4j/net/SocketAppender.java main/java/org/apache/log4j/net/SocketHubAppender.java

Author: carnold
Date: Tue May 12 04:45:21 2009
New Revision: 773779

URL: http://svn.apache.org/viewvc?rev=773779&view=rev
Log:
Bug 46404: Failure when toString of throwable performs logging in SocketAppender, SocketHubAppender and JDBCAppender

Modified:
    logging/log4j/trunk/src/changes/changes.xml
    logging/log4j/trunk/src/main/java/org/apache/log4j/jdbc/JDBCAppender.java
    logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java
    logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java

Modified: logging/log4j/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=773779&r1=773778&r2=773779&view=diff
==============================================================================
--- logging/log4j/trunk/src/changes/changes.xml (original)
+++ logging/log4j/trunk/src/changes/changes.xml Tue May 12 04:45:21 2009
@@ -78,6 +78,7 @@
        <action action="fix" issue="44038">log4j is susceptible to exceptions in Exception.printStackTrace.</action>
        <action action="fix" issue="46741">Misuse of "it's" in Javadoc for PatternLayout.</action>
        <action action="add" issue="47142">Add SMTPAppender.formatBody to simplify extension.</action>
+       <action action="fix" issue="46404">Failure when toString() of throwable performs logging in SocketAppender, SocketHubAppender and JDBCAppender.</action>
     </release>
 
   

Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/jdbc/JDBCAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jdbc/JDBCAppender.java?rev=773779&r1=773778&r2=773779&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/jdbc/JDBCAppender.java (original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/jdbc/JDBCAppender.java Tue May 12 04:45:21 2009
@@ -128,6 +128,8 @@
    * Helper object for clearing out the buffer
    */
   protected ArrayList removes;
+  
+  private boolean locationInfo = false;
 
   public JDBCAppender() {
     super();
@@ -136,9 +138,48 @@
   }
 
   /**
+   * Gets whether the location of the logging request call
+   * should be captured.
+   *
+   * @since 1.2.16
+   * @return the current value of the <b>LocationInfo</b> option.
+   */
+  public boolean getLocationInfo() {
+    return locationInfo;
+  }
+  
+  /**
+   * The <b>LocationInfo</b> option takes a boolean value. By default, it is
+   * set to false which means there will be no effort to extract the location
+   * information related to the event. As a result, the event that will be
+   * ultimately logged will likely to contain the wrong location information
+   * (if present in the log format).
+   * <p/>
+   * <p/>
+   * Location information extraction is comparatively very slow and should be
+   * avoided unless performance is not a concern.
+   * </p>
+   * @since 1.2.16
+   * @param flag true if location information should be extracted.
+   */
+  public void setLocationInfo(final boolean flag) {
+    locationInfo = flag;
+  }
+  
+
+  /**
    * Adds the event to the buffer.  When full the buffer is flushed.
    */
   public void append(LoggingEvent event) {
+    event.getNDC();
+    event.getThreadName();
+    // Get a copy of this thread's MDC.
+    event.getMDCCopy();
+    if (locationInfo) {
+      event.getLocationInformation();
+    }
+    event.getRenderedMessage();
+    event.getThrowableStrRep();
     buffer.add(event);
 
     if (buffer.size() >= bufferSize)

Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java?rev=773779&r1=773778&r2=773779&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java (original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java Tue May 12 04:45:21 2009
@@ -244,6 +244,12 @@
     if (application != null) {
         event.setProperty("application", application);
     }
+    event.getNDC();
+    event.getThreadName();
+    event.getMDCCopy();
+    event.getRenderedMessage();
+    event.getThrowableStrRep();
+    
 	oos.writeObject(event);
 	//LogLog.debug("=========Flushing.");
 	oos.flush();

Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java?rev=773779&r1=773778&r2=773779&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java (original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java Tue May 12 04:45:21 2009
@@ -192,6 +192,12 @@
       if (application != null) {
           event.setProperty("application", application);
         } 
+        event.getNDC();
+        event.getThreadName();
+        event.getMDCCopy();
+        event.getRenderedMessage();
+        event.getThrowableStrRep();
+        
       if (buffer != null) {
         buffer.add(event);
       }



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org