Author: j16sdiz
Date: 2008-11-06 08:45:15 +0000 (Thu, 06 Nov 2008)
New Revision: 23341

Modified:
   trunk/freenet/src/freenet/support/FileLoggerHook.java
Log:
refactor 2: factor out FileLoggerHook.rotateLog()

Modified: trunk/freenet/src/freenet/support/FileLoggerHook.java
===================================================================
--- trunk/freenet/src/freenet/support/FileLoggerHook.java       2008-11-06 
08:44:54 UTC (rev 23340)
+++ trunk/freenet/src/freenet/support/FileLoggerHook.java       2008-11-06 
08:45:15 UTC (rev 23341)
@@ -266,49 +266,11 @@
                                        thisTime = System.currentTimeMillis();
                                        if (baseFilename != null) {
                                                if ((thisTime > nextHour) || 
switchedBaseFilename) {
-                                                       {
-                                                       // Switch logs
-                                                       try {
-                                                               
logStream.flush();
-                                                               if(altLogStream 
!= null) altLogStream.flush();
-                                                       } catch (IOException e) 
{
-                                                               
System.err.println(
-                                                                       
"Flushing on change caught " + e);
-                                                       }
-                                                       try {
-                                                               
logStream.close();
-                                                       } catch (IOException e) 
{
-                                                               
System.err.println(
-                                                                               
"Closing on change caught " + e);
-                                                       }
-                                                       long length = 
currentFilename.length();
-                                                       OldLogFile olf = new 
OldLogFile(currentFilename, lastTime, nextHour, length);
-                                                       synchronized(logFiles) {
-                                                               
logFiles.addLast(olf);
-                                                       }
-                                                       
oldLogFilesDiskSpaceUsage += length;
-                                                       trimOldLogFiles();
-                                                       // Rotate primary log 
stream
-                                                       currentFilename = new 
File(getHourLogName(gc, true));
-                                                       logStream = 
openNewLogFile(currentFilename, true);
-                                                       if(latestFile != null) {
-                                                               try {
-                                                                       
altLogStream.close();
-                                                               } catch 
(IOException e) {
-                                                                       
System.err.println(
-                                                                               
        "Closing alt on change caught " + e);
-                                                               }
-                                                               if(previousFile 
!= null && previousFile.exists())
-                                                                       
FileUtil.renameTo(latestFile, previousFile);
-                                                               
latestFile.delete();
-                                                               altLogStream = 
openNewLogFile(latestFile, false);
-                                                       }
-                                                       }
-                                                       
//System.err.println("Rotated log files: "+filename);
-                                                       
//System.err.println("Almost rotated");
+                                                       currentFilename = 
rotateLog(currentFilename, lastTime, nextHour, gc);
+
                                                        gc.add(INTERVAL, 
INTERVAL_MULTIPLIER);
                                                        nextHour = 
gc.getTimeInMillis();
-                                                       
//System.err.println("Rotated");
+
                                                        
if(switchedBaseFilename) {
                                                                
synchronized(FileLoggerHook.class) {
                                                                        
switchedBaseFilename = false;
@@ -352,6 +314,46 @@
                        }
                }

+               private File rotateLog(File currentFilename, long lastTime, 
long nextHour, GregorianCalendar gc) {
+               // Switch logs
+               try {
+                       logStream.flush();
+                       if(altLogStream != null) altLogStream.flush();
+               } catch (IOException e) {
+                       System.err.println(
+                               "Flushing on change caught " + e);
+               }
+               try {
+                       logStream.close();
+               } catch (IOException e) {
+                       System.err.println(
+                                       "Closing on change caught " + e);
+               }
+               long length = currentFilename.length();
+               OldLogFile olf = new OldLogFile(currentFilename, lastTime, 
nextHour, length);
+               synchronized(logFiles) {
+                       logFiles.addLast(olf);
+               }
+               oldLogFilesDiskSpaceUsage += length;
+               trimOldLogFiles();
+               // Rotate primary log stream
+               currentFilename = new File(getHourLogName(gc, true));
+               logStream = openNewLogFile(currentFilename, true);
+               if(latestFile != null) {
+                       try {
+                               altLogStream.close();
+                       } catch (IOException e) {
+                               System.err.println(
+                                               "Closing alt on change caught " 
+ e);
+                       }
+                       if(previousFile != null && previousFile.exists())
+                               FileUtil.renameTo(latestFile, previousFile);
+                       latestFile.delete();
+                       altLogStream = openNewLogFile(latestFile, false);
+               }
+               return currentFilename;
+        }
+
                // Check every minute
                static final int maxSleepTime = 60 * 1000;
                /**


Reply via email to