Michael Gratton wrote:
Attached is a patch (for the 'fop-0_20_2-maintain' branch) for
MessageHandler
There was a problem with MessageHandler.error() in that patch. The
attached patch fixes that and makes MessageHandler.log() a bit more
readable. It also includes a fix for the outstanding
ToBeImplementedProperty problem - by using MessageHandler.
Note that the document patch on the previous message is still valid.
Mike.
--
Michael Gratton [EMAIL PROTECTED]
Recall Design http://www.recalldesign.com/
s: 53 Gilbert Street Adelaide SA 5000 Australia
t: +61 8 8217 0500 f: +61 8 8217 0555
Index: src/org/apache/fop/messaging/MessageHandler.java
===
RCS file:
/home/cvspublic/xml-fop/src/org/apache/fop/messaging/Attic/MessageHandler.java,v
retrieving revision 1.6.2.1
diff -u -r1.6.2.1 MessageHandler.java
--- src/org/apache/fop/messaging/MessageHandler.java17 Mar 2002 23:37:07 -
1.6.2.1
+++ src/org/apache/fop/messaging/MessageHandler.java19 Mar 2002 04:46:04 -
@@ -48,6 +48,7 @@
public static final int EVENT = 2;
public static final int NONE = 3;// this should always be the last method
+private static Logger logger = null;
private static String logfileName = fop.log;
private static PrintWriter writer;
private static int outputMethod = SCREEN;
@@ -81,47 +82,47 @@
}
}
-// temp workaround
-private static Logger logger = null;
-
/**
* informs the user of the message
* @param message the message for the user
*/
public static void log(String message) {
-if (!quiet) {
-if(logger == null) {
-logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
-}
-setMessage(message);
-switch (outputMethod) {
-case SCREEN:
-logger.debug(getMessage());
-break;
-case FILE:
-if (fileOpened) {
-writer.print(getMessage());
-writer.flush();
-} else {
-openFile();
-writer.print(getMessage());
-writer.flush();
-}
-break;
-case EVENT:
-setMessage(message);
-Enumeration enum = listeners.elements();
-while (enum.hasMoreElements()) {
-((MessageListener)enum.nextElement()).processMessage(new
MessageEvent(getMessage()));
-}
-break;
-case NONE:
-// do nothing
-break;
-default:
-logger.debug(message);
-}
-}
+if (quiet)
+ return;
+
+ if (logger == null) {
+ logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
+ logger.warn(Screen logger not set.);
+ }
+
+ setMessage(message);
+ switch (outputMethod) {
+ case SCREEN:
+ logger.debug(getMessage());
+ break;
+ case FILE:
+ if (fileOpened) {
+ writer.print(getMessage());
+ writer.flush();
+ } else {
+ openFile();
+ writer.print(getMessage());
+ writer.flush();
+ }
+ break;
+ case EVENT:
+ setMessage(message);
+ Enumeration enum = listeners.elements();
+ while (enum.hasMoreElements()) {
+ ((MessageListener)enum.nextElement()).processMessage(new
+MessageEvent(getMessage()));
+ }
+ break;
+ case NONE:
+ // do nothing
+ break;
+ default:
+ logger.debug(message);
+ }
}
/**
@@ -138,9 +139,11 @@
*/
public static void error(String errorMessage) {
-if(logger == null) {
-logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
-}
+ if (logger == null) {
+ logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
+ logger.warn(Screen logger not set.);
+ }
+
setMessage(errorMessage);
switch (outputMethod) {
case SCREEN:
@@ -195,6 +198,16 @@
*/
public static void removeListener(MessageListener listener) {
listeners.removeElement(listener);
+}
+
+/**
+ * Sets the Logger used for the screen output method.
+ * @param newLogger a logger for screen output. This may not be null.
+ */
+public static void setScreenLogger(Logger newLogger) {
+ if (newLogger == null)
+ throw new NullPointerException();
+ logger = newLogger;
}
/**
Index: src/org/apache/fop/apps/CommandLineOptions.java
===
RCS file: /home/cvspublic/xml-fop/src/org/apache/fop/apps/CommandLineOptions.java,v
retrieving revision