All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.gridkit.jvmtool.stacktrace.util.ThreadSnaphotPrinter Maven / Gradle / Ivy

There is a newer version: 0.23
Show newest version
package org.gridkit.jvmtool.stacktrace.util;

import java.text.SimpleDateFormat;

import org.gridkit.jvmtool.codec.stacktrace.ThreadSnapshotEvent;
import org.gridkit.jvmtool.stacktrace.StackFrame;
import org.gridkit.jvmtool.stacktrace.StackFrameList;

public class ThreadSnaphotPrinter {

	private SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");

	public String format(ThreadSnapshotEvent e) {
		StringBuilder sb = new StringBuilder();
		format(sb, e);
		return sb.toString();
	}
	
	public void format(StringBuilder sb, ThreadSnapshotEvent e) {
        String timestamp = fmt.format(e.timestamp());
        sb
            .append("Thread [")
            .append(e.threadId())
            .append("] ");
        
        if (e.threadState() != null) {
            sb.append(e.threadState()).append(' ');
        }
        
        sb.append("at ").append(timestamp);
        
        if (e.threadName() != null) {
            sb.append(" - ").append(e.threadName());
        }
        sb.append("\n");
        
        StackFrameList trace = e.stackTrace();
        for(StackFrame frame: trace) {
            sb.append(frame).append("\n");
        }
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy