You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chukwa.apache.org by as...@apache.org on 2009/03/30 06:32:42 UTC

svn commit: r759838 - in /hadoop/chukwa/trunk: CHANGES.txt src/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java

Author: asrabkin
Date: Mon Mar 30 04:32:41 2009
New Revision: 759838

URL: http://svn.apache.org/viewvc?rev=759838&view=rev
Log:
CHUKWA-43.  ChukwaLog4jAppender should send the current file offset instead of sending 0.  Contributed by Jerome Boulon.

Modified:
    hadoop/chukwa/trunk/CHANGES.txt
    hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java

Modified: hadoop/chukwa/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/chukwa/trunk/CHANGES.txt?rev=759838&r1=759837&r2=759838&view=diff
==============================================================================
--- hadoop/chukwa/trunk/CHANGES.txt (original)
+++ hadoop/chukwa/trunk/CHANGES.txt Mon Mar 30 04:32:41 2009
@@ -35,6 +35,8 @@
 
   BUG FIXES
 
+    CHUKWA-43.  ChukwaLog4jAppender should send the current file offset instead of sending 0.  (Jerome Boulon via asrabkin)
+
     CHUKWA-41.  ChukwaLog4jAppender does not escape \n for exception.  (Jerome Boulon via asrabkin)
 
     CHUKWA-28.  Late initalization of log4j adaptor.  (Jerome Boulon via asrabkin)

Modified: hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java
URL: http://svn.apache.org/viewvc/hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java?rev=759838&r1=759837&r2=759838&view=diff
==============================================================================
--- hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java (original)
+++ hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java Mon Mar 30 04:32:41 2009
@@ -21,6 +21,7 @@
 import java.util.Locale;
 import java.util.TimeZone;
 import java.util.regex.Pattern;
+
 import org.apache.hadoop.chukwa.datacollection.controller.ChukwaAgentController;
 import org.apache.hadoop.chukwa.util.RecordConstants;
 import org.apache.log4j.FileAppender;
@@ -520,6 +521,20 @@
       // and use the boolean to avoid the first level locking
       if (chukwaClientIsNull) {
         synchronized (chukwaLock) {
+
+          String log4jFileName = getFile(); 
+          String recordType = getRecordType();
+
+          long currentLength = 0L;
+          try {
+            File fooLog = new File(log4jFileName);
+            log4jFileName = fooLog.getAbsolutePath();
+            currentLength = fooLog.length();
+          } catch (Throwable e) {
+            log.warn("Exception while trying to get current file size for " + log4jFileName);
+            currentLength = 0L;
+          }
+
           if (chukwaClient == null) {
             if (getChukwaClientHostname() != null
                 && getChukwaClientPortNum() != 0) {
@@ -531,7 +546,7 @@
             } else {
               chukwaClient = new ChukwaAgentController();
               log
-                  .debug("setup adaptor with no args, which means it used its defaults");
+              .debug("setup adaptor with no args, which means it used its defaults");
             }
 
             chukwaClientIsNull = false;
@@ -556,9 +571,10 @@
             if (numRetries == 0) {
               numRetries = 48;
             }
-            String log4jFileName = getFile();
-            String recordType = getRecordType();
-            long adaptorID = chukwaClient.addFile(recordType, log4jFileName,
+
+
+            long adaptorID = chukwaClient.add(ChukwaAgentController.CharFileTailUTF8NewLineEscaped,
+                recordType,currentLength + " " + log4jFileName, currentLength,
                 numRetries, retryInterval);
 
             // Setup a shutdownHook for the controller
@@ -568,10 +584,13 @@
 
             if (adaptorID > 0) {
               log.debug("Added file tailing adaptor to chukwa agent for file "
-                  + log4jFileName + "using this recordType :" + recordType);
+                  + log4jFileName + ", adaptorId:" + adaptorID 
+                  + " using this recordType :" + recordType 
+                  + ", starting at offset:" + currentLength);
             } else {
               log.debug("Chukwa adaptor not added, addFile(" + log4jFileName
-                  + ") returned " + adaptorID);
+                  + ") returned " + adaptorID 
+                  + ", current offset:" + currentLength);
             }
 
           }