You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yacy_search_server/source/net/yacy/kelondro/logging/SimpleLogFormatter.java

110 lines
4.3 KiB

reverted SVN 7557 because these classes are called using reflection. The class declaration is in the log configuration. Without these classes you get errors during runtime and a non-formatted log output, i.e.: STARTUP: Trying to load logging configuration from file /Data/workspace1/yacy/DATA/LOG/yacy.logging Can't load log handler "net.yacy.kelondro.logging.ConsoleOutErrHandler" java.lang.ClassNotFoundException: net.yacy.kelondro.logging.ConsoleOutErrHandler java.lang.ClassNotFoundException: net.yacy.kelondro.logging.ConsoleOutErrHandler at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.util.logging.LogManager$3.run(LogManager.java:359) at java.security.AccessController.doPrivileged(Native Method) at java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:346) at java.util.logging.LogManager.initializeGlobalHandlers(LogManager.java:898) at java.util.logging.LogManager.access$900(LogManager.java:130) at java.util.logging.LogManager$RootLogger.getHandlers(LogManager.java:979) at java.util.logging.Logger.log(Logger.java:454) at java.util.logging.Logger.doLog(Logger.java:480) at java.util.logging.Logger.log(Logger.java:503) at net.yacy.kelondro.logging.Log$logRunner.run(Log.java:332) Can't load log handler "net.yacy.kelondro.logging.LogalizerHandler" java.lang.ClassNotFoundException: net.yacy.kelondro.logging.LogalizerHandler java.lang.ClassNotFoundException: net.yacy.kelondro.logging.LogalizerHandler at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.util.logging.LogManager$3.run(LogManager.java:359) at java.security.AccessController.doPrivileged(Native Method) at java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:346) at java.util.logging.LogManager.initializeGlobalHandlers(LogManager.java:898) at java.util.logging.LogManager.access$900(LogManager.java:130) at java.util.logging.LogManager$RootLogger.getHandlers(LogManager.java:979) at java.util.logging.Logger.log(Logger.java:454) at java.util.logging.Logger.doLog(Logger.java:480) at java.util.logging.Logger.log(Logger.java:503) at net.yacy.kelondro.logging.Log$logRunner.run(Log.java:332) git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7559 6c8d7289-2bf4-0310-a012-ef5d649a1542
14 years ago
//severSimpleLogFormatter.java
//-------------------------------------
//part of YACY
//(C) by Michael Peter Christen; mc@yacy.net
//first published on http://www.anomic.de
//Frankfurt, Germany, 2004
//
//This file is contributed by Martin Thelian
//last major change: $LastChangedDate: 2008-08-02 14:12:04 +0200 (Sat, 02 Aug 2008) $ by $LastChangedBy: orbiter $
//Revision: $LastChangedRevision: 6572 $
//
//This program is free software; you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation; either version 2 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package net.yacy.kelondro.logging;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.FieldPosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.logging.LogRecord;
import java.util.logging.SimpleFormatter;
public final class SimpleLogFormatter extends SimpleFormatter {
private final 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", Locale.US);
private final StringBuffer buffer = new StringBuffer();
public SimpleLogFormatter() {
super();
}
@Override
public final synchronized String format(final LogRecord record) {
final StringBuffer stringBuffer = this.buffer;
stringBuffer.setLength(0);
// adding the loglevel
final int logLevel = record.getLevel().intValue();
if (logLevel == Log.LOGLEVEL_SEVERE)
this.buffer.append(Log.LOGTOKEN_SEVERE);
else if (logLevel == Log.LOGLEVEL_WARNING)
this.buffer.append(Log.LOGTOKEN_WARNING);
else if (logLevel == Log.LOGLEVEL_CONFIG)
this.buffer.append(Log.LOGTOKEN_CONFIG);
else if (logLevel == Log.LOGLEVEL_INFO)
this.buffer.append(Log.LOGTOKEN_INFO);
else if (logLevel == Log.LOGLEVEL_FINE)
this.buffer.append(Log.LOGTOKEN_FINE);
else if (logLevel == Log.LOGLEVEL_FINER)
this.buffer.append(Log.LOGTOKEN_FINER);
else if (logLevel == Log.LOGLEVEL_FINEST)
this.buffer.append(Log.LOGTOKEN_FINEST);
else
this.buffer.append(Log.LOGTOKEN_FINE);
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
stringBuffer.append(' ');
stringBuffer.append(record.getLoggerName());
// adding the logging message
stringBuffer.append(' ');
stringBuffer.append(formatMessage(record));
// adding the stack trace if available
stringBuffer.append(System.getProperty("line.separator"));
if (record.getThrown() != null) {
StringWriter writer = null;
try {
writer = new StringWriter();
final PrintWriter printer = new PrintWriter(writer);
record.getThrown().printStackTrace(printer);
stringBuffer.append(writer.toString());
} catch (final Exception e) {
stringBuffer.append("Failed to get stack trace: ").append(e.getMessage());
} finally {
if (writer != null) try {writer.close();} catch (final Exception ex) {}
}
}
return stringBuffer.toString();
}
}