diff --git a/lib/logging.properties b/lib/logging.properties index ab912df4f624a20b73d42f359ad53c9f7c5779a4..41a45128d9a407688f212d6c333640c4b28c4bd7 100644 --- a/lib/logging.properties +++ b/lib/logging.properties @@ -37,10 +37,11 @@ handlers = java.util.logging.ConsoleHandler java.util.logging.FileHandler.pattern = %h/java%u.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 1 -java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter +#java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter +java.util.logging.FileHandler.formatter = org.opensha2.util.Logging$ConsoleFormatter # Limit the message that are printed on the console to INFO and above. -java.util.logging.ConsoleHandler.level = ALL +java.util.logging.ConsoleHandler.level = INFO #java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.ConsoleHandler.formatter = org.opensha2.util.Logging$ConsoleFormatter @@ -57,4 +58,4 @@ org.opensha2.eq.model.IndexedFaultParser.level = INFO org.opensha2.eq.model.GridParser.level = INFO org.opensha2.eq.model.InterfaceParser.level = INFO org.opensha2.eq.model.GmmParser.level = INFO -org.opensha2.programs.HazardCurve = ALL +org.opensha2.programs.HazardCalc = ALL diff --git a/src/org/opensha2/eq/model/Loader.java b/src/org/opensha2/eq/model/Loader.java index 6b950cceed864696e814f52d300c611c50ed2640..9ace19ec30b24e17ef0d294abaec1b47538d873c 100644 --- a/src/org/opensha2/eq/model/Loader.java +++ b/src/org/opensha2/eq/model/Loader.java @@ -1,7 +1,6 @@ package org.opensha2.eq.model; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.StandardSystemProperty.LINE_SEPARATOR; import static java.nio.file.Files.newDirectoryStream; diff --git a/src/org/opensha2/programs/HazardCalc.java b/src/org/opensha2/programs/HazardCalc.java index 571f4519313f2d971fa8dfb1031bb034c2b05bd9..2a6f358b4fddf7092283186d74c6e32ce005a2fb 100644 --- a/src/org/opensha2/programs/HazardCalc.java +++ b/src/org/opensha2/programs/HazardCalc.java @@ -16,6 +16,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.ThreadPoolExecutor; +import java.util.logging.FileHandler; import java.util.logging.Logger; import org.opensha2.calc.CalcConfig; @@ -85,10 +86,14 @@ public class HazardCalc { return Optional.of(USAGE); } - Logging.init(); - Logger log = Logger.getLogger(HazardCalc.class.getName()); - try { + Logging.init(); + Logger log = Logger.getLogger(HazardCalc.class.getName()); + Path tempLog = createTempLog(); + FileHandler fh = new FileHandler(tempLog.getFileName().toString()); + fh.setFormatter(new Logging.ConsoleFormatter()); + log.getParent().addHandler(fh); + log.info(PROGRAM + ": initializing..."); Path modelPath = Paths.get(args[0]); HazardModel model = HazardModel.load(modelPath); @@ -106,7 +111,9 @@ public class HazardCalc { log.info(""); log.info("Sites: " + sites); - calc(model, config, sites, log); + Path out = calc(model, config, sites, log); + Files.move(tempLog, out.resolve(PROGRAM + ".log")); + log.info(PROGRAM + ": finished"); return Optional.absent(); @@ -143,9 +150,10 @@ public class HazardCalc { private static final OpenOption[] APPEND_OPTIONS = new OpenOption[] { APPEND }; /* - * Compute hazard curves using the supplied model, config, and sites. + * Compute hazard curves using the supplied model, config, and sites. Method + * returns the path to the directory where results were written. */ - private static void calc( + private static Path calc( HazardModel model, CalcConfig config, Iterable<Site> sites, @@ -191,21 +199,36 @@ public class HazardCalc { Results.writeResults(outDir, results, opts); } log.info(PROGRAM + ": " + count + " complete " + totalWatch); - + if (threadCount != ThreadCount.ONE) { execSvc.shutdown(); } + + return outDir; } - /* avoid clobbering exsting result directories via incrementing */ + /* Avoid clobbering exsting result directories via incrementing */ private static Path createOutputDir(Path dir) { int i = 1; - Path dirIncrement = dir; - while (Files.exists(dirIncrement)) { - dirIncrement = dirIncrement.resolveSibling(dir.getFileName() + "-" + i); + Path dirIncr = dir; + while (Files.exists(dirIncr)) { + dirIncr = dirIncr.resolveSibling(dir.getFileName() + "-" + i); + i++; + } + return dirIncr; + } + + private static final String TMP_LOG = "nshmp-haz-log"; + + private static Path createTempLog() { + Path logBase = Paths.get("."); + Path logIncr = logBase.resolve(TMP_LOG); + int i = 1; + while (Files.exists(logIncr)) { + logIncr = logBase.resolve(TMP_LOG + "-" + i); i++; } - return dirIncrement; + return logIncr; } /** diff --git a/src/org/opensha2/util/Logging.java b/src/org/opensha2/util/Logging.java index 66f6abfb80fff20ac75a274ade8ec2d2ce7db642..0e6e9b87cba0ec7b2241fe7f30111fce85c7bf19 100644 --- a/src/org/opensha2/util/Logging.java +++ b/src/org/opensha2/util/Logging.java @@ -58,7 +58,6 @@ public class Logging { /** * Custom console formatter. - * @author Peter Powers */ public final static class ConsoleFormatter extends Formatter {