diff options
Diffstat (limited to 'src/main/java/com/c2kernel/utils/Logger.java')
| -rw-r--r-- | src/main/java/com/c2kernel/utils/Logger.java | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/src/main/java/com/c2kernel/utils/Logger.java b/src/main/java/com/c2kernel/utils/Logger.java index da476df..72c6918 100644 --- a/src/main/java/com/c2kernel/utils/Logger.java +++ b/src/main/java/com/c2kernel/utils/Logger.java @@ -23,6 +23,7 @@ public class Logger * add ten to output time before each message
*/
private static int mHighestLogLevel = 0;
+ private static long startTime = System.currentTimeMillis();
private static HashMap<PrintStream, Integer> logStreams = new HashMap<PrintStream, Integer>();
static protected SimpleTCPIPServer mConsole = null;
@@ -31,15 +32,17 @@ public class Logger synchronized(logStreams) {
for (Iterator<PrintStream> iter = logStreams.keySet().iterator(); iter.hasNext();) {
PrintStream element = iter.next();
- int logLevel = logStreams.get(element).intValue();
- if (logLevel < msgLogLevel || (logLevel > 9 && logLevel - 10 < msgLogLevel))
+ int logLevel = logStreams.get(element);
+
+ if ( (logLevel > 9 && logLevel - 10 < msgLogLevel) ||
+ (msgLogLevel > 9 && logLevel < msgLogLevel - 10) ||
+ (logLevel < 10 && msgLogLevel < 10 && logLevel < msgLogLevel) )
continue;
- if (logLevel > 9)
- {
- Timestamp ts = new Timestamp(System.currentTimeMillis());
- String sTime = ts.toString();
- message = sTime + " - " + message;
+
+ if (logLevel > 9 || msgLogLevel > 9) {
+ message = reportTime() + " - " + message;
}
+
try {
element.println(message);
} catch (Exception ex) {
@@ -48,6 +51,13 @@ public class Logger }
}
}
+
+ static private String reportTime() {
+ long now = System.currentTimeMillis();
+ Timestamp ts = new Timestamp(now);
+ double since = (now - startTime) / 1000.0;
+ return ts.toString() + " ("+since+"s)";
+ }
static private void printMessage(Throwable ex) {
StringWriter msgString = new StringWriter();
@@ -59,6 +69,7 @@ public class Logger static public boolean doLog(int logLevel)
{
+ if (logLevel > 9) logLevel -= 10;
return mHighestLogLevel >= logLevel;
}
/**
@@ -130,9 +141,8 @@ public class Logger }
synchronized(logStreams) {
- logStreams.put(console, new Integer(logLevel));
- if (logLevel > 9) logLevel-=10;
- if (logLevel > mHighestLogLevel) mHighestLogLevel = logLevel;
+ logStreams.put(console, logLevel);
+ if ((logLevel>10?logLevel-10:logLevel) > mHighestLogLevel) mHighestLogLevel = logLevel;
}
}
@@ -148,10 +158,10 @@ public class Logger // recalculate lowest log level
if (logLevel == mHighestLogLevel || (logLevel > 9 && logLevel-10 == mHighestLogLevel)) {
- mHighestLogLevel = -1;
+ mHighestLogLevel = 0;
for (Integer element : logStreams.values()) {
- int thisLogLevel = element.intValue()>9?element.intValue()-10:element.intValue();
- if (thisLogLevel > mHighestLogLevel || mHighestLogLevel == -1)
+ int thisLogLevel = element>9?element-10:element;
+ if (thisLogLevel > mHighestLogLevel)
mHighestLogLevel = thisLogLevel;
}
}
|
