Monster merge from the integration branch. Still some problems left and JUnits failing.
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf / src / org / eclipse / linuxtools / tmf / Tracer.java
CommitLineData
8c8bf09f
ASL
1package org.eclipse.linuxtools.tmf;\r
2\r
550d787e
FC
3import java.io.BufferedWriter;\r
4import java.io.FileWriter;\r
5import java.io.IOException;\r
6\r
8c8bf09f 7import org.eclipse.core.runtime.Platform;\r
550d787e
FC
8import org.eclipse.linuxtools.tmf.component.ITmfComponent;\r
9import org.eclipse.linuxtools.tmf.component.ITmfDataProvider;\r
10import org.eclipse.linuxtools.tmf.event.TmfData;\r
11import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;\r
8c8bf09f
ASL
12\r
13public class Tracer {\r
14\r
36548af3 15 private static String pluginID = TmfCorePlugin.PLUGIN_ID;\r
9aae0442 16\r
550d787e
FC
17 static Boolean ERROR = Boolean.FALSE;\r
18 static Boolean WARNING = Boolean.FALSE;\r
19 static Boolean INFO = Boolean.FALSE;\r
20\r
21 static Boolean COMPONENT = Boolean.FALSE;\r
22 static Boolean REQUEST = Boolean.FALSE;\r
23 static Boolean SIGNAL = Boolean.FALSE;\r
24 static Boolean EVENT = Boolean.FALSE;\r
25 static Boolean EXCEPTION = Boolean.FALSE;\r
26\r
27 private static BufferedWriter fTraceLog = null;\r
28\r
29 private static BufferedWriter openLogFile(String filename) {\r
30 BufferedWriter outfile = null;\r
31 try {\r
32 outfile = new BufferedWriter(new FileWriter(filename));\r
33 } catch (IOException e) {\r
34 e.printStackTrace();\r
35 }\r
36 return outfile;\r
37 }\r
38\r
8c8bf09f 39 public static void init() {\r
8c8bf09f 40\r
550d787e
FC
41 String traceKey;\r
42 boolean isTracing = false;\r
43 \r
44 traceKey = Platform.getDebugOption(pluginID + "/error");\r
45 if (traceKey != null) {\r
46 ERROR = (Boolean.valueOf(traceKey)).booleanValue();\r
47 isTracing |= ERROR;\r
48 }\r
49\r
50 traceKey = Platform.getDebugOption(pluginID + "/warning");\r
8c8bf09f 51 if (traceKey != null) {\r
550d787e
FC
52 WARNING = (Boolean.valueOf(traceKey)).booleanValue();\r
53 isTracing |= WARNING;\r
8c8bf09f 54 }\r
550d787e
FC
55\r
56 traceKey = Platform.getDebugOption(pluginID + "/info");\r
57 if (traceKey != null) {\r
58 INFO = (Boolean.valueOf(traceKey)).booleanValue();\r
59 isTracing |= INFO;\r
60 }\r
61\r
62 traceKey = Platform.getDebugOption(pluginID + "/component");\r
63 if (traceKey != null) {\r
64 COMPONENT = (Boolean.valueOf(traceKey)).booleanValue();\r
65 isTracing |= COMPONENT;\r
66 }\r
67\r
68 traceKey = Platform.getDebugOption(pluginID + "/request");\r
69 if (traceKey != null) {\r
70 REQUEST = (Boolean.valueOf(traceKey)).booleanValue();\r
71 isTracing |= REQUEST;\r
72 }\r
73\r
74 traceKey = Platform.getDebugOption(pluginID + "/signal");\r
75 if (traceKey != null) {\r
76 SIGNAL = (Boolean.valueOf(traceKey)).booleanValue();\r
77 isTracing |= SIGNAL;\r
78 }\r
79\r
80 traceKey = Platform.getDebugOption(pluginID + "/event");\r
81 if (traceKey != null) {\r
82 EVENT = (Boolean.valueOf(traceKey)).booleanValue();\r
83 isTracing |= EVENT;\r
84 }\r
85\r
86 traceKey = Platform.getDebugOption(pluginID + "/exception");\r
87 if (traceKey != null) {\r
88 EXCEPTION = (Boolean.valueOf(traceKey)).booleanValue();\r
89 isTracing |= EXCEPTION;\r
90 }\r
91\r
92 // Create trace log file if needed\r
93 if (isTracing) {\r
94 fTraceLog = openLogFile("trace.log");\r
95 }\r
96 }\r
97\r
98 // Predicates\r
99 public static boolean isErrorTraced() {\r
100 return ERROR;\r
101 }\r
102\r
103 public static boolean isComponentTraced() {\r
104 return COMPONENT;\r
105 }\r
106 \r
107 public static boolean isRequestTraced() {\r
108 return REQUEST;\r
109 }\r
110 \r
111 public static boolean isEventTraced() {\r
112 return EVENT;\r
113 }\r
114 \r
115 public static boolean isExceptionTraced() {\r
116 return EXCEPTION;\r
8c8bf09f
ASL
117 }\r
118\r
550d787e
FC
119 // Tracers\r
120 public static void trace(String msg) {\r
121 long currentTime = System.currentTimeMillis();\r
122 StringBuilder message = new StringBuilder("[");\r
123 message.append(currentTime / 1000);\r
124 message.append(".");\r
125 message.append(currentTime % 1000);\r
126 message.append("] ");\r
127 message.append(msg);\r
128 System.out.println(message);\r
129 try {\r
130 if (fTraceLog != null) {\r
131 fTraceLog.write(message.toString());\r
132 fTraceLog.newLine();\r
133 fTraceLog.flush();\r
134 }\r
135 } catch (IOException e) {\r
136 e.printStackTrace();\r
8c8bf09f
ASL
137 }\r
138 }\r
550d787e
FC
139\r
140 public static void traceComponent(ITmfComponent component, String msg) {\r
141 String message = ("[CMP] Thread=" + Thread.currentThread().getId() + " Cmp=" + component.getName() + " " + msg);\r
142 trace(message);\r
143 }\r
144\r
145 public static void traceRequest(ITmfDataRequest<?> request, String msg) {\r
146 String message = ("[REQ] Thread=" + Thread.currentThread().getId() + " Req=" + request.getRequestId() + ", Type=" + request.getDataType().getSimpleName() + " " + msg);\r
147 trace(message);\r
148 }\r
149\r
150 public static void traceEvent(ITmfDataProvider<?> provider, ITmfDataRequest<?> request, TmfData data) {\r
151 String message = ("[EVT] Provider=" + provider.toString() + ", Req=" + request.getRequestId() + ", Event=" + data.toString());\r
152 trace(message);\r
153 }\r
154\r
155 public static void traceException(Exception e) {\r
156 }\r
157\r
158 public static void traceError(String msg) {\r
159 String message = ("[ERR] Thread=" + Thread.currentThread().getId() + " " + msg);\r
160 trace(message);\r
161 }\r
162\r
8c8bf09f 163}\r
This page took 0.031774 seconds and 5 git commands to generate.