64 lines
1.8 KiB
Java
64 lines
1.8 KiB
Java
package de.mrbesen.youtubecrawler;
|
|
|
|
import org.apache.log4j.ConsoleAppender;
|
|
import org.apache.log4j.Layout;
|
|
import org.apache.log4j.Level;
|
|
import org.apache.log4j.Logger;
|
|
import org.apache.log4j.spi.LoggingEvent;
|
|
|
|
public class Log {
|
|
|
|
|
|
public static Logger l = Logger.getRootLogger();
|
|
|
|
public Log() {
|
|
l.setLevel(Level.ALL);
|
|
ConsoleAppender consoleAppender = new ConsoleAppender( new Layout() {
|
|
@Override
|
|
public void activateOptions() {
|
|
}
|
|
|
|
@Override
|
|
public boolean ignoresThrowable() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public String format(LoggingEvent e) {
|
|
String classname = e.getLoggerName();
|
|
classname = classname.substring(classname.lastIndexOf('.')+1);
|
|
String out = "["+ format(e.getThreadName(), 10) + "|" + format(classname, 10) + "|" + format(e.getLevel().toString(),3) + "] ";
|
|
if (e.getThrowableInformation() != null) {
|
|
out += e.getMessage() + "\n" + logException(e.getThrowableInformation().getThrowable(), out);
|
|
} else {
|
|
out += e.getMessage();
|
|
}
|
|
return( out + '\n');
|
|
}
|
|
|
|
private String logException(Throwable t, String prefix) {
|
|
StringBuilder errortext = new StringBuilder();
|
|
errortext.append(prefix).append(t.toString());
|
|
for(StackTraceElement err : t.getStackTrace()) {
|
|
errortext.append('\n').append(prefix).append(' ').append(err.toString());
|
|
}
|
|
if(t.getCause() != null) {
|
|
errortext.append("\n" + prefix +" Caused by: \n").append(logException(t.getCause(), prefix + " "));
|
|
}
|
|
return errortext.toString();
|
|
}
|
|
|
|
private String format(String in, int length) {
|
|
while(in.length() < length) {
|
|
in += ' ';
|
|
}
|
|
|
|
if(in.length() > length) {
|
|
in = in.substring(0, length);
|
|
}
|
|
return in;
|
|
}
|
|
} );
|
|
l.addAppender( consoleAppender );
|
|
}
|
|
} |