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

base.log.SimpleLogFormat Maven / Gradle / Ivy

/**
 * Creative commons Attribution-NonCommercial license.
 *
 * http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB
 *
 * NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
 */
package base.log;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.LogRecord;

public class SimpleLogFormat extends Formatter {

	protected final DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

	public String format(LogRecord record) {
		String entry = format.format(new Date(record.getMillis()))+" "+record.getLevel().getName()+" "+record.getMessage();

		if(record.getThrown() != null){
			entry = entry + " - " + exceptionToString(record.getThrown());
			if(record.getThrown().getCause() != null) {
				entry = entry + " - Caused by " + exceptionToString(record.getThrown().getCause());
				if(record.getThrown().getCause().getCause() != null) {
					entry = entry + " - Caused by " + exceptionToString(record.getThrown().getCause().getCause());
				}
			}
		}

		return entry + "\n";
	}

	private String exceptionToString(Throwable t) {
		String msg = t.getClass().getName() + ": " + t.getMessage() + " -";
		final StackTraceElement[] stackTrace = t.getStackTrace();
		for(StackTraceElement element : stackTrace) {
			String className = element.getClassName();
			msg = msg + " " + className + "." + element.getMethodName() + "():" + element.getLineNumber() + " ";
			if(className.startsWith("sun.") || className.startsWith("java.")) {
				break;
			}
		}
		return msg;
	}

	public String getHead(Handler h) {
		return "";
	}

	public String getTail(Handler h) {
		return "";
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy