From: <pat...@us...> - 2009-01-05 17:56:03
|
Revision: 828 http://cishell.svn.sourceforge.net/cishell/?rev=828&view=rev Author: pataphil Date: 2009-01-05 17:55:56 +0000 (Mon, 05 Jan 2009) Log Message: ----------- Log writing code now outputs exception stack traces when the exception objects are provided. Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.log/src/org/cishell/reference/gui/log/LogToFile.java Modified: trunk/clients/gui/org.cishell.reference.gui.log/src/org/cishell/reference/gui/log/LogToFile.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.log/src/org/cishell/reference/gui/log/LogToFile.java 2009-01-05 17:54:22 UTC (rev 827) +++ trunk/clients/gui/org.cishell.reference.gui.log/src/org/cishell/reference/gui/log/LogToFile.java 2009-01-05 17:55:56 UTC (rev 828) @@ -1,17 +1,18 @@ package org.cishell.reference.gui.log; import java.io.File; - -import org.osgi.service.log.LogEntry; -import org.osgi.service.log.LogListener; - +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.Calendar; import java.util.logging.FileHandler; +import java.util.logging.Level; import java.util.logging.Logger; -import java.util.logging.Level; import java.util.logging.SimpleFormatter; -import java.io.IOException; +import org.osgi.service.log.LogEntry; +import org.osgi.service.log.LogListener; + /** * This is a basic implementation. It writes log records to files * @author Weixia(Bonnie) Huang (hu...@in...) @@ -89,9 +90,22 @@ javaLogLevel = Level.INFO; } // edited by Felix Terkhorn. ter...@gm... May-9-2007 - if (goodMessage(message)){ - logger.log(javaLogLevel, message+"\n"); // stdout printing happens here, despite having 1 handler only + // Log the exception? + Throwable throwableToBeLogged = entry.getException(); + + // Log the exception's stack trace? + if (throwableToBeLogged != null) { + // TODO: Log to a different file? This would possibly be where we'd + // check the preferences/etc. + StringWriter stackTraceStringWriter = new StringWriter(); + + throwableToBeLogged.printStackTrace(new PrintWriter(stackTraceStringWriter)); + logger.log(javaLogLevel, "Stace Trace: " + stackTraceStringWriter.toString() + "\r\n"); } + + if (goodMessage(message)) { + logger.log(javaLogLevel, message + "\r\n"); // stdout printing happens here, despite having 1 handler only + } } private boolean goodMessage(String msg) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |