[Cleaned up logging, changed some log levels and added logging for the linearize package.
bringert@cs.chalmers.se**20050315185004] {
hunk ./README 49
-PROBLEMS:
-
-- the OAA interface is case-insensitive
-
hunk ./doc/gf-java.html 131
+
Logging
+
+The Embedded GF Interpreter uses the
+Java
+Logging API to handle log messages. The following logging
+namespaces are used:
+
+
+- se.chalmers.cs.gf.parse
+- se.chalmers.cs.gf.linearize
+
+
+By default, little information is logged. To change the log level
+or other logging parameters, you can use the normal Logging API
+mechanisms. For example, to print FINE level message for the
+parse package and inearize packages to the standard
+error stream, create a file called logging.properties in the
+current directory:
+
+
+# Log to System.err:
+handlers=java.util.logging.ConsoleHandler
+
+# Set the log level of the log handler to FINEST
+java.util.logging.ConsoleHandler.level=FINEST
+# Use our log formatter, which just prints the log messages
+java.util.logging.ConsoleHandler.formatter=se.chalmers.cs.gf.util.SimplestLogFormatter
+
+# Set global logging level
+.level=INFO
+
+# Set log levels for our packages
+se.chalmers.cs.gf.parse.level=FINE
+se.chalmers.cs.gf.linearize.level=FINE
+
+
+Then instruct the logging API to use the properties from this file,
+for example:
+
+
+$ java -Djava.util.logging.config.file=logging.properties -jar translate-numerals.jar
+
+
hunk ./doc/gf-java.html 200
-
-
-Known issues
-
-
hunk ./se/chalmers/cs/gf/linearize/LinearizeAll.java 7
+import static se.chalmers.cs.gf.linearize.LinearizeLogger.*;
hunk ./se/chalmers/cs/gf/linearize/LinearizeAll.java 59
- System.err.println("Linearizing to " + lang);
+ log.fine("Linearizing to " + lang);
addfile ./se/chalmers/cs/gf/linearize/LinearizeLogger.java
hunk ./se/chalmers/cs/gf/linearize/LinearizeLogger.java 1
+package se.chalmers.cs.gf.linearize;
+
+import se.chalmers.cs.gf.util.GFLogger;
+import java.util.logging.*;
+
+/**
+ * Handles logging for the linearize package.
+ */
+public class LinearizeLogger {
+
+ public static GFLogger log = new GFLogger("se.chalmers.cs.gf.linearize");
+
+ private LinearizeLogger() {}
+
+}
hunk ./se/chalmers/cs/gf/linearize/gfvalue/Record.java 22
- throw new GFException("Field " + v + " does not exit in " + this);
+ throw new GFException("Field " + v + " does not exist in " + this);
hunk ./se/chalmers/cs/gf/parse/ParseAll.java 55
- finer("Trying to parse '" + str + "' with all languages");
+ log.fine("Trying to parse '" + str + "' with all languages");
hunk ./se/chalmers/cs/gf/parse/ParseAll.java 63
- finer("Trying " + l);
+ log.finer("Trying " + l);
hunk ./se/chalmers/cs/gf/parse/ParseAll.java 65
- finer(l + ": " + t);
+ log.fine(l + ": " + t);
hunk ./se/chalmers/cs/gf/parse/ParseAll.java 69
- error(ex);
+ log.error(ex);
hunk ./se/chalmers/cs/gf/parse/ParseLogger.java 3
+import se.chalmers.cs.gf.util.GFLogger;
hunk ./se/chalmers/cs/gf/parse/ParseLogger.java 11
- private static Logger logger = Logger.getLogger("se.chalmers.cs.gf.parse");
+ public static GFLogger log = new GFLogger("se.chalmers.cs.gf.parse");
hunk ./se/chalmers/cs/gf/parse/ParseLogger.java 14
-
- public static void fine(String s) {
- log(Level.FINE, s);
- }
-
- public static void finer(String s) {
- log(Level.FINER, s);
- }
-
- public static void finest(String s) {
- log(Level.FINEST, s);
- }
-
- public static void error(Throwable t) {
- LogRecord r = new LogRecord(Level.SEVERE, "Throw");
- r.setThrown(t);
- logger.log(r);
- }
-
- private static void log(Level l, String s) {
- logger.log(l, s);
- }
hunk ./se/chalmers/cs/gf/parse/chart/ChartParser.java 24
- fine("Created chart parser for " + grammar.getName());
+ log.fine("Created chart parser for " + grammar.getName());
hunk ./se/chalmers/cs/gf/parse/chart/ChartParser.java 36
- fine("Parsing \"" + str + "\" as " + cat + ".");
+ log.finer("Parsing \"" + str + "\" as " + cat + ".");
hunk ./se/chalmers/cs/gf/parse/chart/ChartParser.java 41
- fine("Tokens: " + tokens);
-
hunk ./se/chalmers/cs/gf/parse/chart/ChartParser.java 43
- fine("Finished parsing.");
+ log.finest("Finished parsing.");
hunk ./se/chalmers/cs/gf/parse/chart/ChartParser.java 45
- finest(chartInfo(chart));
+ log.finest(chartInfo(chart));
hunk ./se/chalmers/cs/gf/parse/chart/ChartParser.java 47
- fine("Building trees.");
+ log.finest("Building trees.");
hunk ./se/chalmers/cs/gf/parse/chart/ChartParser.java 51
- fine("Built " + trees.size() + " trees");
+ log.finer("Built " + trees.size() + " trees");
hunk ./se/chalmers/cs/gf/parse/chart/Lexer.java 6
+import static se.chalmers.cs.gf.parse.ParseLogger.*;
+
hunk ./se/chalmers/cs/gf/parse/chart/Lexer.java 41
+
+ log.finest("Lexed \"" + input + "\" to " + ts);
addfile ./se/chalmers/cs/gf/util/GFLogger.java
hunk ./se/chalmers/cs/gf/util/GFLogger.java 1
+package se.chalmers.cs.gf.util;
+
+import java.util.logging.*;
+
+/**
+ * General logging class.
+ */
+public class GFLogger {
+
+ private Logger logger;
+
+ public GFLogger(String packageName) {
+ this.logger = Logger.getLogger(packageName);
+ }
+
+ public void fine(String s) {
+ log(Level.FINE, s);
+ }
+
+ public void finer(String s) {
+ log(Level.FINER, s);
+ }
+
+ public void finest(String s) {
+ log(Level.FINEST, s);
+ }
+
+ public void error(Throwable t) {
+ LogRecord r = new LogRecord(Level.SEVERE, "Throw");
+ r.setThrown(t);
+ logger.log(r);
+ }
+
+ private void log(Level l, String s) {
+ logger.log(l, s);
+ }
+
+}
addfile ./se/chalmers/cs/gf/util/SimplestLogFormatter.java
hunk ./se/chalmers/cs/gf/util/SimplestLogFormatter.java 1
+package se.chalmers.cs.gf.util;
+
+import java.util.logging.*;
+
+/**
+ * A log record formatter which just returns the log message.
+ */
+public class SimplestLogFormatter extends Formatter {
+
+ public SimplestLogFormatter() {}
+
+ public String format(LogRecord r) {
+ return r.getMessage() + "\n";
+ }
+}
}