From ee9e11036653c0cd8b0aef0c51065d2e897b3953 Mon Sep 17 00:00:00 2001 From: theli Date: Fri, 10 Jun 2005 09:19:24 +0000 Subject: [PATCH] *) removing old logging configuration properties from yacy.init *) 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 --- source/de/anomic/http/httpTemplate.java | 6 +- source/de/anomic/http/httpd.java | 15 ++- source/de/anomic/http/httpdFileHandler.java | 9 +- source/de/anomic/http/httpdProxyHandler.java | 9 +- .../de/anomic/plasma/plasmaCrawlWorker.java | 3 +- source/de/anomic/plasma/plasmaHTCache.java | 3 +- .../de/anomic/plasma/plasmaSwitchboard.java | 12 +-- .../de/anomic/server/logging/serverLog.java | 95 +++++++++++++------ .../logging/serverSimpleLogFormatter.java | 6 +- .../anomic/server/serverAbstractThread.java | 26 +++-- source/de/anomic/server/serverCore.java | 4 +- source/de/anomic/yacy/yacyCore.java | 2 +- source/yacy.java | 15 +-- yacy.init | 14 --- 14 files changed, 116 insertions(+), 103 deletions(-) diff --git a/source/de/anomic/http/httpTemplate.java b/source/de/anomic/http/httpTemplate.java index 165f4d067..73ac0c11a 100644 --- a/source/de/anomic/http/httpTemplate.java +++ b/source/de/anomic/http/httpTemplate.java @@ -55,6 +55,7 @@ import java.io.File; import java.util.Hashtable; import de.anomic.server.serverFileUtils; +import de.anomic.server.logging.serverLog; /** * A template engine, which substitutes patterns in strings
@@ -355,9 +356,8 @@ public final class httpTemplate { include+=line+de.anomic.server.serverCore.crlfString; } }catch(IOException e){ - //file not found? - System.err.println("Include Error with file: "+filename); - //e.printStackTrace(); + //file not found? + serverLog.logError("FILEHANDLER","Include Error with file: "+filename); } PushbackInputStream pis2 = new PushbackInputStream(new ByteArrayInputStream(include.getBytes())); writeTemplate(pis2, out, pattern, dflt, prefix); diff --git a/source/de/anomic/http/httpd.java b/source/de/anomic/http/httpd.java index 8c1a1ab2f..b597f582e 100644 --- a/source/de/anomic/http/httpd.java +++ b/source/de/anomic/http/httpd.java @@ -245,7 +245,7 @@ public final class httpd implements serverHandler { public String error(Throwable e) { // OBLIGATORIC FUNCTION // return string in case of any error that occurs during communication // is always (but not only) called if an IO-dependent exception occurrs. - e.printStackTrace(); + this.log.logError("Unexpected Error. " + e.getClass().getName(),e); return "501 Exception occurred: " + e.getMessage(); } @@ -507,9 +507,8 @@ public final class httpd implements serverHandler { return this.prop.getProperty(CONNECTION_PROP_PERSISTENT).equals("keep-alive") ? serverCore.RESUME_CONNECTION : serverCore.TERMINATE_CONNECTION; } catch (Exception e) { - String errorMsg = "Unexpected Error. " + e.getClass().getName() + ": " + e.getMessage(); - System.err.println("PROXY: " + errorMsg); - this.log.logError(errorMsg); + String errorMsg = "Unexpected Error. " + e.getClass().getName() + ": " + e.getMessage(); + this.log.logError(errorMsg,e); return serverCore.TERMINATE_CONNECTION; } } @@ -560,9 +559,8 @@ public final class httpd implements serverHandler { } return this.prop.getProperty(CONNECTION_PROP_PERSISTENT).equals("keep-alive") ? serverCore.RESUME_CONNECTION : serverCore.TERMINATE_CONNECTION; } catch (Exception e) { - String errorMsg = "Unexpected Error. " + e.getClass().getName() + ": " + e.getMessage(); - System.err.println("PROXY: " + errorMsg); - this.log.logError(errorMsg); + String errorMsg = "Unexpected Error. " + e.getClass().getName() + ": " + e.getMessage(); + this.log.logError(errorMsg,e); return serverCore.TERMINATE_CONNECTION; } } @@ -632,8 +630,7 @@ public final class httpd implements serverHandler { return this.prop.getProperty(CONNECTION_PROP_PERSISTENT).equals("keep-alive") ? serverCore.RESUME_CONNECTION : serverCore.TERMINATE_CONNECTION; } catch (Exception e) { String errorMsg = "Unexpected Error. " + e.getClass().getName() + ": " + e.getMessage(); - System.err.println("PROXY: " + errorMsg); - this.log.logError(errorMsg); + this.log.logError(errorMsg,e); return serverCore.TERMINATE_CONNECTION; } } diff --git a/source/de/anomic/http/httpdFileHandler.java b/source/de/anomic/http/httpdFileHandler.java index 1426a60ff..5072e912d 100644 --- a/source/de/anomic/http/httpdFileHandler.java +++ b/source/de/anomic/http/httpdFileHandler.java @@ -123,6 +123,8 @@ public final class httpdFileHandler extends httpdAbstractHandler implements http private Properties connectionProperties = null; private MessageDigest md5Digest = null; + private final serverLog theLogger = new serverLog("FILEHANDLER"); + public httpdFileHandler(serverSwitch switchboard) { this.switchboard = switchboard; @@ -416,12 +418,11 @@ public final class httpdFileHandler extends httpdAbstractHandler implements http tp.put("uptime", ((System.currentTimeMillis() - Long.parseLong(switchboard.getConfig("startupTime","0"))) / 1000) / 60); // uptime in minutes //System.out.println("respond props: " + ((tp == null) ? "null" : tp.toString())); // debug } catch (InvocationTargetException e) { - System.out.println("INTERNAL ERROR: " + e.toString() + ":" + + this.theLogger.logError("INTERNAL ERROR: " + e.toString() + ":" + e.getMessage() + " target exception at " + rc + ": " + e.getTargetException().toString() + ":" + - e.getTargetException().getMessage()); - e.printStackTrace(); + e.getTargetException().getMessage(),e); rc = null; } filedate = new Date(System.currentTimeMillis()); @@ -483,7 +484,7 @@ public final class httpdFileHandler extends httpdAbstractHandler implements http } catch (Exception e) { //textMessage(out, 503, "Exception with query: " + path + "; '" + e.toString() + ":" + e.getMessage() + "'\r\n"); //e.printStackTrace(); - System.out.println("ERROR: Exception with query: " + path + "; '" + e.toString() + ":" + e.getMessage() + "'\r\n"); + this.theLogger.logError("ERROR: Exception with query: " + path + "; '" + e.toString() + ":" + e.getMessage() + "'",e); } out.flush(); if (!(requestHeader.get(httpHeader.CONNECTION, "close").equals("keep-alive"))) { diff --git a/source/de/anomic/http/httpdProxyHandler.java b/source/de/anomic/http/httpdProxyHandler.java index 8347802aa..6a4c757a3 100644 --- a/source/de/anomic/http/httpdProxyHandler.java +++ b/source/de/anomic/http/httpdProxyHandler.java @@ -455,9 +455,8 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt } } catch (Exception e) { - String errorMsg = "Unexpected Error. " + e.getClass().getName() + ": " + e.getMessage(); - System.err.println("PROXY: " + errorMsg); - this.theLogger.logError(errorMsg); + String errorMsg = "Unexpected Error. " + e.getClass().getName() + ": " + e.getMessage(); + this.theLogger.logError(errorMsg,e); } finally { respond.flush(); if (respond instanceof httpdByteCountOutputStream) ((httpdByteCountOutputStream)respond).finish(); @@ -693,12 +692,12 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt if (cacheFile.exists()) cacheFile.delete(); if (e.getMessage().indexOf("Corrupt GZIP trailer") >= 0) { // just do nothing, we leave it this way - this.theLogger.logDebug("ignoring bad gzip trail for URL " + url + " (" + e.getMessage() + ")"); + this.theLogger.logDebug("ignoring bad gzip trail for URL " + url + " (" + e.getMessage() + ")",e); conProp.put(httpd.CONNECTION_PROP_PERSISTENT,"close"); } else { if (!conProp.containsKey(httpd.CONNECTION_PROP_PROXY_RESPOND_HEADER)) { httpd.sendRespondError(conProp,respond,4,404,null,"client unexpectedly closed connection",e); - this.theLogger.logDebug("IOError for URL " + url + " (" + e.getMessage() + ") - responded 404"); + this.theLogger.logDebug("IOError for URL " + url + " (" + e.getMessage() + ") - responded 404",e); } else { conProp.put(httpd.CONNECTION_PROP_PERSISTENT,"close"); } diff --git a/source/de/anomic/plasma/plasmaCrawlWorker.java b/source/de/anomic/plasma/plasmaCrawlWorker.java index d6ba03ebe..e8804add4 100644 --- a/source/de/anomic/plasma/plasmaCrawlWorker.java +++ b/source/de/anomic/plasma/plasmaCrawlWorker.java @@ -425,8 +425,7 @@ public final class plasmaCrawlWorker extends Thread { } catch (Exception e) { // this may happen if the targeted host does not exist or anything with the // remote server was wrong. - log.logError("CRAWLER LOADER ERROR2 with url=" + url.toString() + ": " + e.toString()); - e.printStackTrace(); + log.logError("CRAWLER LOADER ERROR2 with url=" + url.toString() + ": " + e.toString(),e); } finally { if (remote != null) httpc.returnInstance(remote); } diff --git a/source/de/anomic/plasma/plasmaHTCache.java b/source/de/anomic/plasma/plasmaHTCache.java index 427afb943..d295cef2a 100644 --- a/source/de/anomic/plasma/plasmaHTCache.java +++ b/source/de/anomic/plasma/plasmaHTCache.java @@ -97,8 +97,7 @@ public final class plasmaHTCache { public plasmaHTCache(plasmaSwitchboard switchboard, int bufferkb) { this.switchboard = switchboard; - int loglevel = Integer.parseInt(switchboard.getConfig("plasmaLoglevel", "2")); - this.log = new serverLog("HTCACHE", loglevel); + this.log = new serverLog("HTCACHE"); // set cache path cachePath = new File(switchboard.getRootPath(),switchboard.getConfig("proxyCache","HTCACHE")); diff --git a/source/de/anomic/plasma/plasmaSwitchboard.java b/source/de/anomic/plasma/plasmaSwitchboard.java index 246017013..d530320e1 100644 --- a/source/de/anomic/plasma/plasmaSwitchboard.java +++ b/source/de/anomic/plasma/plasmaSwitchboard.java @@ -106,7 +106,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; -import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; import java.text.SimpleDateFormat; @@ -117,7 +116,6 @@ import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.Map; -import java.util.TreeMap; import java.util.Set; import java.util.TreeSet; import java.util.Vector; @@ -125,24 +123,19 @@ import java.util.Vector; import de.anomic.data.messageBoard; import de.anomic.data.wikiBoard; import de.anomic.htmlFilter.htmlFilterContentScraper; -import de.anomic.htmlFilter.htmlFilterOutputStream; import de.anomic.http.httpHeader; -import de.anomic.http.httpc; import de.anomic.kelondro.kelondroException; import de.anomic.kelondro.kelondroMSetTools; -import de.anomic.kelondro.kelondroMScoreCluster; import de.anomic.kelondro.kelondroTables; import de.anomic.server.serverAbstractSwitch; import de.anomic.server.serverCodings; import de.anomic.server.serverCore; import de.anomic.server.serverDate; -import de.anomic.server.serverFileUtils; -import de.anomic.server.serverThread; import de.anomic.server.serverInstantThread; -import de.anomic.server.logging.serverLog; import de.anomic.server.serverObjects; import de.anomic.server.serverSemaphore; import de.anomic.server.serverSwitch; +import de.anomic.server.logging.serverLog; import de.anomic.tools.bitfield; import de.anomic.tools.crypt; import de.anomic.yacy.yacyClient; @@ -198,8 +191,7 @@ public final class plasmaSwitchboard extends serverAbstractSwitch implements ser super(rootPath, initPath, configPath); // set loglevel and log - int loglevel = Integer.parseInt(getConfig("plasmaLoglevel", "2")); - setLog(new serverLog("PLASMA", loglevel)); + setLog(new serverLog("PLASMA")); // load values from configs plasmaPath = new File(rootPath, getConfig("dbPath", "PLASMADB")); diff --git a/source/de/anomic/server/logging/serverLog.java b/source/de/anomic/server/logging/serverLog.java index a62ffb437..0ab649140 100644 --- a/source/de/anomic/server/logging/serverLog.java +++ b/source/de/anomic/server/logging/serverLog.java @@ -44,23 +44,18 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.GregorianCalendar; -import java.util.LinkedList; -import java.util.TimeZone; -import java.util.logging.ConsoleHandler; -import java.util.logging.FileHandler; +import java.io.PrintStream; +import java.io.PrintWriter; import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.Logger; -import java.util.logging.StreamHandler; public final class serverLog { // // log-level categories public static final int LOGLEVEL_ZERO = Level.OFF.intValue(); // no output at all public static final int LOGLEVEL_FAILURE = Level.SEVERE.intValue(); // system-level error, internal cause, critical and not fixeable (i.e. inconsistency) - public static final int LOGLEVEL_ERROR = Level.SEVERE.intValue(); // exceptional error, catcheable and non-critical (i.e. file error) + public static final int LOGLEVEL_ERROR = 950; // exceptional error, catcheable and non-critical (i.e. file error) public static final int LOGLEVEL_WARNING = Level.WARNING.intValue(); // uncritical service failure, may require user activity (i.e. input required, wrong authorization) public static final int LOGLEVEL_SYSTEM = Level.CONFIG.intValue(); // regular system status information (i.e. start-up messages) public static final int LOGLEVEL_INFO = Level.INFO.intValue(); // regular action information (i.e. any httpd request URL) @@ -78,32 +73,31 @@ public final class serverLog { private final Logger theLogger; public serverLog(String appName) { - //this(appName, LOGLEVEL_DEBUG); this.theLogger = Logger.getLogger(appName); } - - public serverLog(String appName, int logLevel) { - this(appName); -// this.logLevel = logLevel; -// this.appName = appName; - } - - public serverLog(String appName, char logToken) { - this(appName); -// this(appName, t2l(logToken)); - } - - public void setLoglevel(int newLevel) { -// this.logLevel = newLevel; + + public void setLevel(Level newLevel) { + this.theLogger.setLevel(newLevel); } // class log messages public void logFailure(String message) {this.theLogger.severe(message);} + public void logFailure(String message, Throwable thrown) {this.theLogger.log(Level.SEVERE,message,thrown);} + public void logError(String message) {this.theLogger.severe(message);} + public void logError(String message, Throwable thrown) {this.theLogger.log(Level.SEVERE,message,thrown);} + public void logWarning(String message) {this.theLogger.warning(message);} + public void logWarning(String message, Throwable thrown) {this.theLogger.log(Level.WARNING,message,thrown);} + public void logSystem(String message) {this.theLogger.config(message);} + public void logSystem(String message, Throwable thrown) {this.theLogger.log(Level.CONFIG,message,thrown);} + public void logInfo(String message) {this.theLogger.info(message);} + public void logInfo(String message, Throwable thrown) {this.theLogger.log(Level.INFO,message,thrown);} + public void logDebug(String message) {this.theLogger.finest(message);} + public void logDebug(String message, Throwable thrown) {this.theLogger.log(Level.FINEST,message,thrown);} // static log messages: log everything @@ -111,12 +105,52 @@ public final class serverLog { Logger.getLogger(appName).log(Level.parse(Integer.toString(messageLevel)),message); } - public static void logFailure(String appName, String message) {Logger.getLogger(appName).severe(message);} - public static void logError(String appName, String message) {Logger.getLogger(appName).severe(message);} - public static void logWarning(String appName, String message) {Logger.getLogger(appName).warning(message);} - public static void logSystem(String appName, String message) {Logger.getLogger(appName).config(message);} - public static void logInfo(String appName, String message) {Logger.getLogger(appName).info(message);} - public static void logDebug(String appName, String message) {Logger.getLogger(appName).finest(message);} + private void log(Level level, String msg, Throwable thrown) { + this.theLogger.log(level, msg, thrown); + } + + public static void logFailure(String appName, String message) { + Logger.getLogger(appName).severe(message); + } + public static void logFailure(String appName, String message, Throwable thrown) { + Logger.getLogger(appName).log(Level.SEVERE,message,thrown); + } + + public static void logError(String appName, String message) { + Logger.getLogger(appName).severe(message); + } + public static void logError(String appName, String message, Throwable thrown) { + Logger.getLogger(appName).log(Level.SEVERE,message,thrown); + } + + public static void logWarning(String appName, String message) { + Logger.getLogger(appName).warning(message); + } + public static void logWarning(String appName, String message, Throwable thrown) { + Logger.getLogger(appName).log(Level.WARNING,message,thrown); + } + + public static void logSystem(String appName, String message) { + Logger.getLogger(appName).config(message); + } + public static void logSystem(String appName, String message, Throwable thrown) { + Logger.getLogger(appName).log(Level.CONFIG,message,thrown); + } + + public static void logInfo(String appName, String message) { + Logger.getLogger(appName).info(message); + } + public static void logInfo(String appName, String message, Throwable thrown) { + Logger.getLogger(appName).log(Level.INFO,message,thrown); + } + + public static void logDebug(String appName, String message) { + Logger.getLogger(appName).finest(message); + } + public static void logDebug(String appName, String message, Throwable thrown) { + Logger.getLogger(appName).log(Level.FINEST,message,thrown); + } + public static final void configureLogging(String homePath) throws SecurityException, FileNotFoundException, IOException { @@ -130,5 +164,8 @@ public final class serverLog { // generating the root logger Logger logger = Logger.getLogger(""); + +// System.setOut(new PrintStream(new LoggerOutputStream(Logger.getLogger("STDOUT"),Level.FINEST))); +// System.setErr(new PrintStream(new LoggerOutputStream(Logger.getLogger("STDERR"),Level.SEVERE))); } } diff --git a/source/de/anomic/server/logging/serverSimpleLogFormatter.java b/source/de/anomic/server/logging/serverSimpleLogFormatter.java index 92ccd069e..3ce03268b 100644 --- a/source/de/anomic/server/logging/serverSimpleLogFormatter.java +++ b/source/de/anomic/server/logging/serverSimpleLogFormatter.java @@ -69,14 +69,16 @@ public class serverSimpleLogFormatter extends SimpleFormatter { // adding the stack trace if available buffer.append(System.getProperty("line.separator")); if (record.getThrown() != null) { + StringWriter writer = null; try { - StringWriter writer = new StringWriter(); + writer = new StringWriter(); PrintWriter printer = new PrintWriter(writer); record.getThrown().printStackTrace(printer); - writer.close(); 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(); diff --git a/source/de/anomic/server/serverAbstractThread.java b/source/de/anomic/server/serverAbstractThread.java index 8270845ce..b0d4704e2 100644 --- a/source/de/anomic/server/serverAbstractThread.java +++ b/source/de/anomic/server/serverAbstractThread.java @@ -160,22 +160,28 @@ public abstract class serverAbstractThread extends Thread implements serverThrea } private final void logError(String text) { - if (log == null) - serverLog.logError("THREAD-CONTROL", text); - else - log.logError(text); + if (log == null) serverLog.logError("THREAD-CONTROL", text); + else log.logError(text); + } + + private final void logError(String text,Throwable thrown) { + if (log == null) serverLog.logError("THREAD-CONTROL", text, thrown); + else log.logError(text,thrown); } + private void logSystem(String text) { - if (log == null) - serverLog.logSystem("THREAD-CONTROL", text); - else - log.logSystem(text); + if (log == null) serverLog.logSystem("THREAD-CONTROL", text); + else log.logSystem(text); } + private void logSystem(String text, Throwable thrown) { + if (log == null) serverLog.logSystem("THREAD-CONTROL", text, thrown); + else log.logSystem(text,thrown); + } + public void jobExceptionHandler(Exception e) { // default handler for job exceptions. shall be overridden for own handler - logError("thread '" + this.getName() + "': " + e.toString()); - e.printStackTrace(); + logError("thread '" + this.getName() + "': " + e.toString(),e); } public void run() { diff --git a/source/de/anomic/server/serverCore.java b/source/de/anomic/server/serverCore.java index 1da5ea5af..71bf69879 100644 --- a/source/de/anomic/server/serverCore.java +++ b/source/de/anomic/server/serverCore.java @@ -170,7 +170,7 @@ public final class serverCore extends serverAbstractThread implements serverThre public serverCore(int port, int maxSessions, int timeout, boolean termSleepingThreads, boolean blockAttack, serverHandler handlerPrototype, serverSwitch switchboard, - int commandMaxLength, int logl) throws IOException { + int commandMaxLength) throws IOException { this.port = port; this.commandMaxLength = commandMaxLength; this.denyHost = (blockAttack) ? new Hashtable() : null; @@ -207,7 +207,7 @@ public final class serverCore extends serverAbstractThread implements serverThre this.maxSessions = maxSessions; this.timeout = timeout; this.termSleepingThreads = termSleepingThreads; - this.log = new serverLog("SERVER", logl); + this.log = new serverLog("SERVER"); } catch (java.lang.ClassNotFoundException e) { System.out.println("FATAL ERROR: " + e.getMessage() + " - Class Not Found"); System.exit(0); } diff --git a/source/de/anomic/yacy/yacyCore.java b/source/de/anomic/yacy/yacyCore.java index b7b123d6a..91f4afce6 100644 --- a/source/de/anomic/yacy/yacyCore.java +++ b/source/de/anomic/yacy/yacyCore.java @@ -133,7 +133,7 @@ public class yacyCore { switchboard.setConfig("yacyStatus",""); // set log level - log = new serverLog("YACY", Integer.parseInt(switchboard.getConfig("yacyLoglevel", "0"))); + log = new serverLog("YACY"); // create a yacy db yacyDBPath = new File(sb.getRootPath(), sb.getConfig("yacyDB", "DATA/YACYDB")); diff --git a/source/yacy.java b/source/yacy.java index f8217bb48..7519aecb2 100644 --- a/source/yacy.java +++ b/source/yacy.java @@ -176,7 +176,6 @@ public final class yacy { // read environment //new int port = Integer.parseInt(sb.getConfig("port", "8080")); - int httpdLoglevel = Integer.parseInt(sb.getConfig("httpdLoglevel", "2")); int timeout = Integer.parseInt(sb.getConfig("httpdTimeout", "60000")); if (timeout < 60000) timeout = 60000; int maxSessions = Integer.parseInt(sb.getConfig("httpdMaxSessions", "100")); @@ -277,8 +276,7 @@ public final class yacy { true /* block attacks (wrong protocol) */, protocolHandler /*command class*/, sb, - 30000 /*command max length incl. GET args*/, - httpdLoglevel /*loglevel*/); + 30000 /*command max length incl. GET args*/); server.setName("httpd:"+port); server.setPriority(Thread.MAX_PRIORITY); if (server == null) { @@ -321,8 +319,7 @@ public final class yacy { try { sb.waitForShutdown(); } catch (Exception e) { - serverLog.logError("MAIN CONTROL LOOP", "PANIK: " + e.getMessage()); - e.printStackTrace(); + serverLog.logError("MAIN CONTROL LOOP", "PANIK: " + e.getMessage(),e); } // shut down @@ -344,13 +341,11 @@ public final class yacy { sb.close(); } } catch (Exception e) { - serverLog.logError("STARTUP", "" + e); - e.printStackTrace(); + serverLog.logError("STARTUP", "Unexpected Error: " + e.getClass().getName(),e); //System.exit(1); } } catch (Exception ee) { - serverLog.logFailure("STARTUP", "FATAL ERROR: " + ee.getMessage()); - ee.printStackTrace(); + serverLog.logFailure("STARTUP", "FATAL ERROR: " + ee.getMessage(),ee); } serverLog.logSystem("SHUTDOWN", "goodbye. (this is the last line)"); try { @@ -630,7 +625,7 @@ class shutdownHookThread extends Thread this.mainThread.join(); } } catch (Exception e) { - e.printStackTrace(); + serverLog.logFailure("SHUTDOWN","Unexpected error. " + e.getClass().getName(),e); } } } diff --git a/yacy.init b/yacy.init index efcca02ca..328ac6824 100644 --- a/yacy.init +++ b/yacy.init @@ -107,20 +107,6 @@ mediaExt=ace,arj,asf,avi,bin,bz2,css,deb,doc,dmg,gif,gz,hqx,img,iso,jar,jpe,jpg, # other peer users promoteSearchPageGreeting = -# the log level, each for a specific software part -# loglevels are: -# NULL = 0: no output at all -# FAILURE = 1: system-level error, internal cause, critical and not fixeable (i.e. inconsistency) -# ERROR = 2: exceptional error, catcheable and non-critical (i.e. file error) -# WARNING = 3: uncritical service failure, may require user activity (i.e. input required, wrong authorization) -# SYSTEM = 4: regular system status information (i.e. start-up messages) -# INFO = 5: regular action information (i.e. any httpd request URL) -# DEBUG = 6: in-function status debug output -httpdLoglevel=4 -proxyLoglevel=5 -plasmaLoglevel=5 -yacyLoglevel=5 - # the path to the PLASMA database, especially the reverse word index dbPath=DATA/PLASMADB