From 31c60f74e1a79138e9612096d0952cfc180b10e4 Mon Sep 17 00:00:00 2001 From: idk Date: Tue, 10 May 2022 17:49:40 -0400 Subject: [PATCH] log launcher into a file before router starts, launcher.log. Get rid of system.out logging. --- changelog.txt | 4 +- i2pversion | 4 +- java/net/i2p/router/WinLauncher.java | 49 ++++++++++++++++++----- java/net/i2p/router/WinUpdateProcess.java | 8 ++-- 4 files changed, 49 insertions(+), 16 deletions(-) diff --git a/changelog.txt b/changelog.txt index 08a4cae..b576827 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,8 +1,8 @@ 2022-05-8 idk - * Add translations for Arabic, German, French, Italian, Japanes, Portuguese, Russian, + * Add translations for Arabic, German, French, Italian, Japanese, Portuguese, Russian, and Chinese. * Add support for I2P+ Router Console detection. Not an endorsement of I2P+, just - a convenience reuested by a helpful user. + a convenience requested by a helpful user. * The build system has been radically improved in order to be simpler to set up and configure. * Fixed a bug where the build deleted a config file. diff --git a/i2pversion b/i2pversion index 20fac7f..b63399e 100644 --- a/i2pversion +++ b/i2pversion @@ -5,8 +5,8 @@ export JNA_VERSION=5.10.0 #Comment this out to build from an alternate branch or # the tip of the master branch. -I2P_VERSION=1.7.5 -export I2P_VERSION=1.7.5 +I2P_VERSION=1.7.6 +export I2P_VERSION=1.7.6 VERSION=i2p-jpackage-1.7.1 export VERSION="$VERSION" diff --git a/java/net/i2p/router/WinLauncher.java b/java/net/i2p/router/WinLauncher.java index 2f1f9f9..c938237 100644 --- a/java/net/i2p/router/WinLauncher.java +++ b/java/net/i2p/router/WinLauncher.java @@ -4,6 +4,9 @@ import java.io.*; import java.net.InetAddress; import java.net.Socket; import java.util.*; +import java.util.logging.FileHandler; +import java.util.logging.Logger; +import java.util.logging.SimpleFormatter; import net.i2p.crypto.*; @@ -28,12 +31,33 @@ import static net.i2p.update.UpdateType.*; * router.pid - the pid of the java process. */ public class WinLauncher { + static Logger logger = Logger.getLogger("launcherlog"); + static FileHandler fh = new FileHandler(logFile().toString()); + public static void main(String[] args) throws Exception { + + try { + + // This block configure the logger with handler and formatter + fh = new FileHandler("C:/temp/test/MyLogFile.log"); + logger.addHandler(fh); + SimpleFormatter formatter = new SimpleFormatter(); + fh.setFormatter(formatter); + + // the following statement is used to log any messages + logger.info("My first log"); + + } catch (SecurityException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + File programs = selectProgramFile(); if (!programs.exists()) programs.mkdirs(); else if (!programs.isDirectory()) { - System.err.println(programs + " exists but is not a directory. Please get it out of the way"); + logger.warning(programs + " exists but is not a directory. Please get it out of the way"); System.exit(1); } @@ -41,24 +65,24 @@ public class WinLauncher { if (!home.exists()) home.mkdirs(); else if (!home.isDirectory()) { - System.err.println(home + " exists but is not a directory. Please get it out of the way"); + logger.warning(home + " exists but is not a directory. Please get it out of the way"); System.exit(1); } System.setProperty("i2p.dir.base", programs.getAbsolutePath()); System.setProperty("i2p.dir.config", home.getAbsolutePath()); System.setProperty("router.pid", String.valueOf(ProcessHandle.current().pid())); - System.out.println("\t" + System.getProperty("i2p.dir.base") + "\n\t" + System.getProperty("i2p.dir.config") + logger.info("\t" + System.getProperty("i2p.dir.base") + "\n\t" + System.getProperty("i2p.dir.config") + "\n\t" + System.getProperty("router.pid")); // do a quick check to see of port 7657 is already occupied if (i2pIsRunning()) { - System.err.println("I2P is already running"); + logger.warning("I2P is already running"); System.exit(0); } // wupp.i2pRouter = new Router(System.getProperties()); - System.out.println("Router is configured"); + logger.info("Router is configured"); Thread registrationThread = new Thread(REGISTER_UPP); registrationThread.setName("UPP Registration"); @@ -132,12 +156,12 @@ public class WinLauncher { File local = new File(appData, "Local"); File i2p; i2p = new File(local, "I2P"); - System.out.println("Windows jpackage wrapper started, using: " + i2p + " as base config"); + logger.info("Windows jpackage wrapper started, using: " + i2p + " as base config"); return i2p.getAbsoluteFile(); } else { File jrehome = new File(System.getProperty("java.home")); File programs = new File(jrehome.getParentFile().getParentFile(), ".i2p"); - System.out.println("Linux portable jpackage wrapper started, using: " + programs + " as base config"); + logger.info("Linux portable jpackage wrapper started, using: " + programs + " as base config"); return programs.getAbsoluteFile(); } } @@ -156,13 +180,20 @@ public class WinLauncher { if (SystemVersion.isWindows()) { File jrehome = new File(System.getProperty("java.home")); File programs = jrehome.getParentFile(); - System.out.println("Windows portable jpackage wrapper found, using: " + programs + " as working config"); + logger.info("Windows portable jpackage wrapper found, using: " + programs + " as working config"); return programs.getAbsoluteFile(); } else { File jrehome = new File(System.getProperty("java.home")); File programs = new File(jrehome.getParentFile().getParentFile(), "i2p"); - System.out.println("Linux portable jpackage wrapper found, using: " + programs + " as working config"); + logger.info("Linux portable jpackage wrapper found, using: " + programs + " as working config"); return programs.getAbsoluteFile(); } } + + private static File logFile() { + File log = new File(selectProgramFile(), "log"); + if (!log.exists()) + log.mkdirs(); + return new File(log, "launcher.log"); + } } diff --git a/java/net/i2p/router/WinUpdateProcess.java b/java/net/i2p/router/WinUpdateProcess.java index 9dc6071..ea639c6 100644 --- a/java/net/i2p/router/WinUpdateProcess.java +++ b/java/net/i2p/router/WinUpdateProcess.java @@ -11,11 +11,13 @@ class WinUpdateProcess implements Runnable { private final RouterContext ctx; private final Supplier versionSupplier; private final Supplier fileSupplier; + private final Log _log; WinUpdateProcess(RouterContext ctx, Supplier versionSupplier, Supplier fileSupplier) { this.ctx = ctx; this.versionSupplier = versionSupplier; this.fileSupplier = fileSupplier; + this._log = ctx.logManager().getLog(WinUpdateProcess.class); } private File workDir() throws IOException { @@ -24,7 +26,7 @@ class WinUpdateProcess implements Runnable { if (workDir.exists()) { if (workDir.isFile()) throw new IOException(workDir + " exists but is a file, get it out of the way"); - return null; + return workDir; } else { workDir.mkdirs(); } @@ -57,7 +59,7 @@ class WinUpdateProcess implements Runnable { try { pb.directory(workingDir).redirectErrorStream(true).redirectOutput(logFile).start(); } catch (IOException ex) { - System.out.println("Unable to run update-program in background. Update will fail."); + _log.Error("Unable to run update-program in background. Update will fail."); } } else { // If we cant write to the log file and we're on Windows, use the elevator to @@ -72,7 +74,7 @@ class WinUpdateProcess implements Runnable { try { runUpdateInstaller(); } catch (IOException ioe) { - System.out.println("Error running updater, update may fail." + ioe); + _log.Error("Error running updater, update may fail." + ioe); } } }