[freenet-cvs] r13123 - trunk/freenet/src/freenet/support

toad at freenetproject.org toad at freenetproject.org
Thu May 3 15:43:10 UTC 2007


Author: toad
Date: 2007-05-03 15:43:09 +0000 (Thu, 03 May 2007)
New Revision: 13123

Modified:
   trunk/freenet/src/freenet/support/FileLoggerHook.java
Log:
Only lookup our hostname if we actually need to. Refactor a bit.

Modified: trunk/freenet/src/freenet/support/FileLoggerHook.java
===================================================================
--- trunk/freenet/src/freenet/support/FileLoggerHook.java	2007-05-03 15:32:39 UTC (rev 13122)
+++ trunk/freenet/src/freenet/support/FileLoggerHook.java	2007-05-03 15:43:09 UTC (rev 13123)
@@ -53,6 +53,11 @@
 	private static String uname;
 	static {
 		uname = "unknown";
+	}
+
+	static synchronized final void getUName() {
+		if(!uname.equals("unknown")) return;
+		System.out.println("Getting uname for logging");
 		try {
 			InetAddress addr = InetAddress.getLocalHost();
 			if (addr != null) {
@@ -63,7 +68,7 @@
 			// Ignored.
 		}
 	}
-
+	
 	private DateFormat df;
 	private int[] fmt;
 	private String[] str;
@@ -708,16 +713,12 @@
 		super(threshold);
 		this.maxOldLogfilesDiskUsage = maxOldLogfilesDiskUsage;
 		this.logOverwrite = overwrite;
-		if ((dfmt != null) && (dfmt.length() != 0)) {
-			try {
-				df = new SimpleDateFormat(dfmt);
-			} catch (RuntimeException e) {
-				df = DateFormat.getDateTimeInstance();
-			}
-		} else
-			df = DateFormat.getDateTimeInstance();
+		
+		setDateFormat(dfmt);
+		setLogFormat(fmt);
+	}
 
-		df.setTimeZone(TimeZone.getTimeZone("UTC"));
+	private void setLogFormat(String fmt) {
 		if ((fmt == null) || (fmt.length() == 0))
 			fmt = "d:c:h:t:p:m";
 		char[] f = fmt.toCharArray();
@@ -728,13 +729,16 @@
 
 		boolean comment = false;
 		for (int i = 0; i < f.length; ++i) {
-			if (!comment && (numberOf(f[i]) != 0)) {
+			int type = numberOf(f[i]);
+			if(type == UNAME)
+				getUName();
+			if (!comment && (type != 0)) {
 				if (sb.length() > 0) {
 					strVec.addElement(sb.toString());
 					fmtVec.addElement(new Integer(0));
 					sb = new StringBuffer();
 				}
-				fmtVec.addElement(new Integer(numberOf(f[i])));
+				fmtVec.addElement(new Integer(type));
 			} else if (f[i] == '\\') {
 				comment = true;
 			} else {
@@ -756,6 +760,19 @@
 		str = (String[]) strVec.toArray(str);
 	}
 
+	private void setDateFormat(String dfmt) {
+		if ((dfmt != null) && (dfmt.length() != 0)) {
+			try {
+				df = new SimpleDateFormat(dfmt);
+			} catch (RuntimeException e) {
+				df = DateFormat.getDateTimeInstance();
+			}
+		} else
+			df = DateFormat.getDateTimeInstance();
+
+		df.setTimeZone(TimeZone.getTimeZone("UTC"));
+	}
+
 	public void log(Object o, Class c, String msg, Throwable e, int priority) {
 		if (!instanceShouldLog(priority, c))
 			return;




More information about the cvs mailing list