diff graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/DebugScope.java @ 5302:55bf72fafc41

(preliminary) logging to file (-G:LogFile=asdf.txt)
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 25 Apr 2012 14:34:29 +0200
parents 4eb9895d9afe
children 2558ff0945f8
line wrap: on
line diff
--- a/graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/DebugScope.java	Wed Apr 25 13:33:28 2012 +0200
+++ b/graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/DebugScope.java	Wed Apr 25 14:34:29 2012 +0200
@@ -33,6 +33,7 @@
     private static ThreadLocal<DebugScope> instanceTL = new ThreadLocal<>();
     private static ThreadLocal<DebugConfig> configTL = new ThreadLocal<>();
     private static ThreadLocal<Throwable> lastExceptionThrownTL = new ThreadLocal<>();
+    private static ThreadLocal<DebugScope> lastLogScope = new ThreadLocal<>();
     private static DebugTimer scopeTime = Debug.timer("ScopeTime");
 
     private final DebugScope parent;
@@ -49,6 +50,8 @@
     private boolean timeEnabled;
     private boolean dumpEnabled;
 
+    private PrintStream output;
+
     public static DebugScope getInstance() {
         DebugScope result = instanceTL.get();
         if (result == null) {
@@ -103,7 +106,11 @@
 
     public void log(String msg, Object... args) {
         if (isLogEnabled()) {
-            cachedOut.println(String.format(msg, args));
+            if (lastLogScope.get() != this) {
+                output.println("scope: " + qualifiedName + " " + this);
+                lastLogScope.set(this);
+            }
+            output.println(String.format(msg, args));
         }
     }
 
@@ -173,11 +180,13 @@
             meterEnabled = false;
             timeEnabled = false;
             dumpEnabled = false;
+            output = null;
         } else {
             logEnabled = config.isLogEnabled();
             meterEnabled = config.isMeterEnabled();
             timeEnabled = config.isTimeEnabled();
             dumpEnabled = config.isDumpEnabled();
+            output = config.output();
         }
     }
 
@@ -281,10 +290,4 @@
     public String getQualifiedName() {
         return qualifiedName;
     }
-
-    public static PrintStream cachedOut;
-
-    public static void initialize() {
-        cachedOut = System.out;
-    }
 }