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) {