Author: toad
Date: 2005-12-07 17:25:08 +0000 (Wed, 07 Dec 2005)
New Revision: 7685

Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/Version.java
   trunk/freenet/src/freenet/support/FileLoggerHook.java
Log:
284:
Log rotation can now happen every N * standard interval.
Set to once every 5 minutes.
Reduce verbosity of rotation.
Make a logs/ directory to put logs in.


Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2005-12-07 16:52:30 UTC (rev 
7684)
+++ trunk/freenet/src/freenet/node/Node.java    2005-12-07 17:25:08 UTC (rev 
7685)
@@ -278,7 +278,9 @@

         int port = Integer.parseInt(args[0]);
         System.out.println("Port number: "+port);
-        FileLoggerHook logger = new FileLoggerHook(true, 
"freenet-"+port+".log", "d (c, t, p): m", "MMM dd, yyyy HH:mm:ss:SSS", 
Logger.MINOR, false, true);
+        new File("logs").mkdir();
+        FileLoggerHook logger = new FileLoggerHook(true, 
"logs/freenet-"+port+".log", "d (c, t, p): m", "MMM dd, yyyy HH:mm:ss:SSS", 
Logger.MINOR, false, true);
+        logger.setInterval("5MINUTES");
         Logger.setupChain();
         Logger.globalSetThreshold(Logger.MINOR);
         Logger.globalAddHook(logger);

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-12-07 16:52:30 UTC (rev 
7684)
+++ trunk/freenet/src/freenet/node/Version.java 2005-12-07 17:25:08 UTC (rev 
7685)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       public static final int buildNumber = 283;
+       public static final int buildNumber = 284;

        /** Oldest build of Fred we will talk to */
        public static final int lastGoodBuild = 282;

Modified: trunk/freenet/src/freenet/support/FileLoggerHook.java
===================================================================
--- trunk/freenet/src/freenet/support/FileLoggerHook.java       2005-12-07 
16:52:30 UTC (rev 7684)
+++ trunk/freenet/src/freenet/support/FileLoggerHook.java       2005-12-07 
17:25:08 UTC (rev 7685)
@@ -38,7 +38,8 @@

        private volatile boolean closed = false;

-       protected int INTERVAL = GregorianCalendar.HOUR;
+       protected int INTERVAL = GregorianCalendar.MINUTE;
+       protected int INTERVAL_MULTIPLIER = 5;

        /** Name of the local host (called uname in Unix-like operating 
systems). */
        private static String uname;
@@ -102,6 +103,22 @@
        }

        public void setInterval(String intervalName) {
+               StringBuffer sb = new StringBuffer(intervalName.length());
+               for(int i=0;i<intervalName.length();i++) {
+                       char c = intervalName.charAt(i);
+                       if(!Character.isDigit(c)) break;
+                       sb.append(c);
+               }
+               if(sb.length() > 0) {
+                       String prefix = sb.toString();
+                       intervalName = intervalName.substring(prefix.length());
+                       INTERVAL_MULTIPLIER = Integer.parseInt(prefix);
+               } else {
+                       INTERVAL_MULTIPLIER = 1;
+               }
+               if (intervalName.endsWith("S")) {
+                       intervalName = intervalName.substring(0, 
intervalName.length()-1);
+               }
                if (intervalName.equalsIgnoreCase("MINUTE"))
                        INTERVAL = Calendar.MINUTE;
                else if (intervalName.equalsIgnoreCase("HOUR"))
@@ -157,8 +174,6 @@
                        String filename = null;
                        if (baseFilename != null) {
                                gc = new GregorianCalendar();
-                               filename = getHourLogName(gc);
-                               uout = openNewLogFile(filename);
                                switch (INTERVAL) {
                                        case Calendar.YEAR :
                                                gc.set(Calendar.MONTH, 0);
@@ -175,7 +190,13 @@
                                                gc.set(Calendar.SECOND, 0);
                                                gc.set(Calendar.MILLISECOND, 0);
                                }
-                               gc.add(INTERVAL, 1);
+                               if(INTERVAL_MULTIPLIER > 1) {
+                                       int x = gc.get(INTERVAL);
+                                       gc.set(INTERVAL, (x / 
INTERVAL_MULTIPLIER) * INTERVAL_MULTIPLIER);
+                               }
+                               filename = getHourLogName(gc);
+                               uout = openNewLogFile(filename);
+                               gc.add(INTERVAL, INTERVAL_MULTIPLIER);
                                nextHour = gc.getTimeInMillis();
                                lout = new PrintStream(uout);
                        }
@@ -211,16 +232,16 @@
                                                                
System.err.println(
                                                                        
"Closing on change caught " + e);
                                                        }
-                                                       
System.err.println("Almost rotated");
+                                                       
//System.err.println("Almost rotated");
                                                        if (useNativeGzip) {
                                                                
CompressorThread ct =
                                                                        new 
CompressorThread(oldFilename);
                                                                ct.start();
                                                                // Don't care 
about result
                                                        } // FIXME: implement a 
portable default compressor
-                                                       gc.add(INTERVAL, 1);
+                                                       gc.add(INTERVAL, 
INTERVAL_MULTIPLIER);
                                                        nextHour = 
gc.getTimeInMillis();
-                                                       
System.err.println("Rotated");
+                                                       
//System.err.println("Rotated");
                                                }
                                        }
                                        if(list.size() == 0) {
@@ -343,11 +364,11 @@
                                }
                        }
                        try {
-                               System.err.println("Starting gzip " + filename);
+                               //System.err.println("Starting gzip " + 
filename);
                                Process r =
                                        Runtime.getRuntime().exec(
                                                new String[] { "nice", "gzip", 
filename });
-                               System.err.println("Started gzip " + filename);
+                               //System.err.println("Started gzip " + 
filename);
                                InputStream is = r.getInputStream();
                                InputStream es = r.getErrorStream();
                                while (true) {
@@ -368,7 +389,7 @@
                                        } catch (IllegalThreadStateException e) 
{
                                        }
                                }
-                               System.err.println("Finished gzip " + filename);
+                               //System.err.println("Finished gzip " + 
filename);
                                is.close();
                                es.close();
                        } catch (IOException e) {


Reply via email to