mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-21 00:00:13 +02:00
ee9e110366
*) serverLog.java logging functions now also accept exceptions als additional parameters. The Stacktrace of this ecceptions will then be appended to the logging message and can e.g. be viewed on the gui logging page git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@265 6c8d7289-2bf4-0310-a012-ef5d649a1542
87 lines
3.2 KiB
Java
87 lines
3.2 KiB
Java
package de.anomic.server.logging;
|
|
|
|
import java.io.PrintWriter;
|
|
import java.io.StringWriter;
|
|
import java.text.FieldPosition;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
import java.util.logging.ConsoleHandler;
|
|
import java.util.logging.Handler;
|
|
import java.util.logging.Level;
|
|
import java.util.logging.LogRecord;
|
|
import java.util.logging.Logger;
|
|
import java.util.logging.SimpleFormatter;
|
|
|
|
import org.apache.commons.collections.map.CaseInsensitiveMap;
|
|
|
|
public class serverSimpleLogFormatter extends SimpleFormatter {
|
|
|
|
|
|
private Date date = new Date();
|
|
private final FieldPosition position = new FieldPosition(0);
|
|
|
|
// e.g. 2005/05/25 11:22:53
|
|
private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
|
|
private final StringBuffer buffer = new StringBuffer();
|
|
|
|
|
|
public serverSimpleLogFormatter() {
|
|
super();
|
|
}
|
|
|
|
public synchronized String format(LogRecord record) {
|
|
|
|
StringBuffer buffer = this.buffer;
|
|
buffer.setLength(0);
|
|
|
|
// adding the loglevel
|
|
int logLevel = record.getLevel().intValue();
|
|
if (logLevel == serverLog.LOGLEVEL_FAILURE)
|
|
this.buffer.append(serverLog.LOGTOKEN_FAILURE);
|
|
else if (logLevel == serverLog.LOGLEVEL_ERROR)
|
|
this.buffer.append(serverLog.LOGTOKEN_ERROR);
|
|
else if (logLevel == serverLog.LOGLEVEL_WARNING)
|
|
this.buffer.append(serverLog.LOGTOKEN_WARNING);
|
|
else if (logLevel == serverLog.LOGLEVEL_SYSTEM)
|
|
this.buffer.append(serverLog.LOGTOKEN_SYSTEM);
|
|
else if (logLevel == serverLog.LOGLEVEL_INFO)
|
|
this.buffer.append(serverLog.LOGTOKEN_INFO);
|
|
else if (logLevel == serverLog.LOGLEVEL_DEBUG)
|
|
this.buffer.append(serverLog.LOGTOKEN_DEBUG);
|
|
else
|
|
this.buffer.append(serverLog.LOGTOKEN_DEBUG);
|
|
this.buffer.append(' ');
|
|
|
|
// adding the logging date
|
|
this.date.setTime(record.getMillis());
|
|
this.position.setBeginIndex(0);
|
|
this.formatter.format(this.date, this.buffer, this.position);
|
|
|
|
// adding the logger name
|
|
buffer.append(' ');
|
|
buffer.append(record.getLoggerName());
|
|
|
|
// adding the logging message
|
|
buffer.append(' ');
|
|
buffer.append(formatMessage(record));
|
|
|
|
// adding the stack trace if available
|
|
buffer.append(System.getProperty("line.separator"));
|
|
if (record.getThrown() != null) {
|
|
StringWriter writer = null;
|
|
try {
|
|
writer = new StringWriter();
|
|
PrintWriter printer = new PrintWriter(writer);
|
|
record.getThrown().printStackTrace(printer);
|
|
buffer.append(writer.toString());
|
|
} catch (Exception e) {
|
|
buffer.append("Failed to get stack trace: " + e.getMessage());
|
|
} finally {
|
|
if (writer != null) try {writer.close();} catch (Exception ex) {}
|
|
}
|
|
}
|
|
return buffer.toString();
|
|
}
|
|
}
|