public void record(int level, Object payload) { final ThreadRecorder recorder = get(); if (recorder != null) recorder.record(level, payload); }
private static void dumpRecorder(String filename) { if (flightRecorder != null) flightRecorder.dump(filename); }
public ThreadRecorder get() { ThreadRecorder recorder = recorders.get(Thread.currentThread()); // threadRecorder.get(); if (recorder == null) return init(DEFAULT_SIZE, DEFAULT_LEVEL); else return recorder; }
static void record(String method, String format, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) { if (RECORDER != null) RECORDER.record(1, new FlightRecorderMessage("ConditionSynchronizer", method, format, new Object[]{arg1, arg2, arg3, arg4, arg5})); } }
public FlightRecorder(String name) { super(null, name, "FlightRecorder", null); startTimestamp = System.nanoTime(); startWallTime = System.currentTimeMillis(); registerMBean(); }
public synchronized void dump(PrintStream ps) { ps.println("============================"); ps.println("=== FLIGHT RECORDER DUMP ==="); ps.println("============================"); ps.println(); ps.println("AVAILABLE RECORDERS"); ps.println("===================="); for (Map.Entry<Thread, ThreadRecorder> entry : recorders.entrySet()) ps.println("THREAD " + entry.getKey() + " TOTAL RECORDED: " + entry.getValue().getTotalRecs() + " AVAILABLE: " + entry.getValue().numOfElements()); ps.println(); ps.println("FLIGHT LOG"); ps.println("===================="); ps.println(); for (Record record : getRecords()) ps.println(record); ps.println(); ps.println("NO MORE RECORDS"); ps.println("===================="); } }
static void record(String method, String format, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) { if (RECORDER != null) RECORDER.record(1, new FlightRecorderMessage("SingleConsumerQueue", method, format, new Object[]{arg1, arg2, arg3, arg4, arg5})); } }
@SuppressWarnings("CallToThreadDumpStack") public static void exit(int code, Throwable t, String filename) { final Strand currentStrand = Strand.currentStrand(); if (flightRecorder != null) { flightRecorder.record(1, "DEBUG EXIT REQUEST ON STRAND " + currentStrand + ": " + Arrays.toString(currentStrand.getStackTrace())); if (t != null) flightRecorder.record(1, "CAUSED BY " + t + ": " + Arrays.toString(currentStrand.getStackTrace())); flightRecorder.stop(); } if (requestShutdown.compareAndSet(false, true)) { System.err.println("DEBUG EXIT REQUEST ON STRAND " + currentStrand + (currentStrand.isFiber() ? " (THREAD " + Thread.currentThread() + ")" : "") + ": SHUTTING DOWN THE JVM."); Thread.dumpStack(); if (t != null) { System.err.println("CAUSED BY " + t); t.printStackTrace(); } dumpRecorder(filename); if (!isUnitTest()) // Calling System.exit() in gradle unit tests breaks gradle System.exit(code); } }
public FlightRecorder(String name) { super(null, name, "FlightRecorder", null); startTimestamp = System.nanoTime(); startWallTime = System.currentTimeMillis(); registerMBean(); }
public synchronized void dump(PrintStream ps) { ps.println("============================"); ps.println("=== FLIGHT RECORDER DUMP ==="); ps.println("============================"); ps.println(); ps.println("AVAILABLE RECORDERS"); ps.println("===================="); for (Map.Entry<Thread, ThreadRecorder> entry : recorders.entrySet()) ps.println("THREAD " + entry.getKey() + " TOTAL RECORDED: " + entry.getValue().getTotalRecs() + " AVAILABLE: " + entry.getValue().numOfElements()); ps.println(); ps.println("FLIGHT LOG"); ps.println("===================="); ps.println(); for (Record record : getRecords()) ps.println(record); ps.println(); ps.println("NO MORE RECORDS"); ps.println("===================="); } }
public void record(int level, Object... payload) { final ThreadRecorder recorder = get(); if (recorder != null) recorder.record(level, payload); } //////////////////////////////////////////////
static void record(String method, String format, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) { if (RECORDER != null) RECORDER.record(1, new FlightRecorderMessage("Var", method, format, new Object[]{arg1, arg2, arg3, arg4, arg5})); } }
public ThreadRecorder get() { ThreadRecorder recorder = recorders.get(Thread.currentThread()); // threadRecorder.get(); if (recorder == null) return init(DEFAULT_SIZE, DEFAULT_LEVEL); else return recorder; }
public static void dumpRecorder(String filename) { dumpLock.lock(); try { if (!dumped) { if (filename == null) { filename = getDumpFile(); if (filename == null || filename.trim().equals("")) filename = null; } if (filename == null) { System.err.println("NO ERROR LOG FILE SPECIFIED."); return; } if (flightRecorder != null) flightRecorder.dump(filename); dumped = true; dumpDone.signalAll(); } else { while (!dumped) dumpDone.await(); } } catch (InterruptedException e) { e.printStackTrace(); } finally { dumpLock.unlock(); } }
protected final boolean isRecordingLevel(int level) { if (flightRecorder == null) return false; final FlightRecorder.ThreadRecorder recorder = flightRecorder.get(); if (recorder == null) return false; return recorder.recordsLevel(level); }
static void record(String method, String format, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) { if (RECORDER != null) RECORDER.record(1, new FlightRecorderMessage("Selector", method, format, new Object[]{arg1, arg2, arg3, arg4, arg5})); } }
protected final void record(int level, String clazz, String method, String format, Object arg1, Object arg2) { if (flightRecorder != null) record(flightRecorder.get(), level, clazz, method, format, arg1, arg2); }