summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/utils/Logger.java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2013-08-28 11:47:39 +0200
committerAndrew Branson <andrew.branson@cern.ch>2013-08-28 11:47:39 +0200
commit55e09596fd84ec82b00f2a5ed8f3cad6f8e02fdd (patch)
tree2c51ae4a1f1201bb0d3ccb29fb80ab0a3a2b6aa1 /src/main/java/com/c2kernel/utils/Logger.java
parent6bdf2e7011d3c7c4edf13bccebc8c89fc1e671d3 (diff)
CastorXMLUtility switched to recommended XMLContext. Should be faster
and may help with IssueID #132 Conflicts: src/main/java/com/c2kernel/utils/CastorXMLUtility.java
Diffstat (limited to 'src/main/java/com/c2kernel/utils/Logger.java')
-rw-r--r--src/main/java/com/c2kernel/utils/Logger.java36
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;
}
}