base.log.SimpleClassLogFormat 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 SimpleClassLogFormat 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.getSourceClassName()+" "+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