The attached patch adds the OSM source file name into log messages so
if you are processing multiple files, you know which file each message
relates to.
The file name (plus a ':' suffix) is inserted between the message
type/class and the message itself.
Please test, especially if using multiple jobs.
Mark
diff --git a/src/uk/me/parabola/log/Logger.java b/src/uk/me/parabola/log/Logger.java
index 85f5b06..6bedd64 100644
--- a/src/uk/me/parabola/log/Logger.java
+++ b/src/uk/me/parabola/log/Logger.java
@@ -20,6 +20,9 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.Thread;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Properties;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
@@ -36,6 +39,8 @@ import java.util.logging.LogManager;
public class Logger {
private final java.util.logging.Logger log;
+ private static Map<Thread, String> threadTags = new HashMap<Thread, String>();
+
static {
initLogging();
}
@@ -150,7 +155,7 @@ public class Logger {
*/
public void debug(Object o) {
if (log.isLoggable(Level.FINE))
- log.fine(o!=null? o.toString(): "null");
+ log.fine(tagMessage(o == null? "null" : o.toString()));
}
/**
@@ -169,7 +174,7 @@ public class Logger {
public void info(Object o) {
if (log.isLoggable(Level.INFO))
- log.info(o.toString());
+ log.info(tagMessage(o == null? "null" : o.toString()));
}
public void info(Object ... olist) {
@@ -178,8 +183,7 @@ public class Logger {
}
public void warn(Object o) {
- if (log.isLoggable(Level.WARNING))
- log.warning(o.toString());
+ log.warning(tagMessage(o == null? "null" : o.toString()));
}
public void warn(Object ... olist) {
@@ -188,16 +192,16 @@ public class Logger {
}
public void error(Object o) {
- log.severe(o.toString());
+ log.severe(tagMessage(o == null? "null" : o.toString()));
}
public void error(Object o, Throwable e) {
- log.log(Level.SEVERE, o.toString(), e);
+ log.log(Level.SEVERE, tagMessage(o == null? "null" : o.toString()), e);
}
public void log(Level level, Object o) {
if (log.isLoggable(level))
- log.log(level, o.toString());
+ log.log(level, tagMessage(o == null? "null" : o.toString()));
}
public void log(Level level, Object ... olist) {
@@ -224,6 +228,15 @@ public class Logger {
}
sb.setLength(sb.length()-1);
- log.log(type, sb.toString());
+ log.log(type, tagMessage(sb.toString()));
+ }
+
+ private String tagMessage(String message) {
+ String threadTag = threadTags.get(Thread.currentThread());
+ return (threadTag != null) ? threadTag + ": " + message : message;
+ }
+
+ public void tagThread(String tag) {
+ threadTags.put(Thread.currentThread(), tag);
}
}
diff --git a/src/uk/me/parabola/mkgmap/main/Main.java b/src/uk/me/parabola/mkgmap/main/Main.java
index 8674830..2293341 100644
--- a/src/uk/me/parabola/mkgmap/main/Main.java
+++ b/src/uk/me/parabola/mkgmap/main/Main.java
@@ -185,8 +185,10 @@ public class Main implements ArgumentProcessor {
log.info("Submitting job " + filename);
FilenameTask task = new FilenameTask(new Callable<String>() {
public String call() {
+ log.tagThread(filename);
String output = mp.makeMap(args, filename);
log.debug("adding output name", output);
+ log.tagThread(null);
return output;
}
});
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev