YoutubeCrawler/src/de/mrbesen/youtubecrawler/Log.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 );
}
}