X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/221d937eecca5c9b09a3bee7df812203b9927a56..d248f249e37f7b35a3b7dd69f2a06af8eddd3996:/src/main/java/org/asamk/signal/Main.java diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index 775b5223..eaa85c12 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -26,19 +26,23 @@ import org.asamk.signal.commands.exceptions.IOErrorException; import org.asamk.signal.commands.exceptions.UnexpectedErrorException; import org.asamk.signal.commands.exceptions.UntrustedKeyErrorException; import org.asamk.signal.commands.exceptions.UserErrorException; -import org.asamk.signal.manager.LibSignalLogger; +import org.asamk.signal.manager.Manager; import org.asamk.signal.util.SecurityProvider; import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.slf4j.bridge.SLF4JBridgeHandler; import java.security.Security; public class Main { public static void main(String[] args) { + // enable unlimited strength crypto via Policy, supported on relevant JREs + Security.setProperty("crypto.policy", "unlimited"); installSecurityProviderWorkaround(); // Configuring the logger needs to happen before any logger is initialized - configureLogging(isVerbose(args)); + final var isVerbose = isVerbose(args); + configureLogging(isVerbose); var parser = App.buildArgumentParser(); @@ -49,7 +53,13 @@ public class Main { new App(ns).init(); } catch (CommandException e) { System.err.println(e.getMessage()); + if (isVerbose && e.getCause() != null) { + e.getCause().printStackTrace(); + } status = getStatusForError(e); + } catch (Throwable e) { + e.printStackTrace(); + status = 2; } System.exit(status); } @@ -71,7 +81,7 @@ public class Main { return false; } - return ns.getBoolean("verbose"); + return Boolean.TRUE.equals(ns.getBoolean("verbose")); } private static void configureLogging(final boolean verbose) { @@ -81,13 +91,16 @@ public class Main { System.setProperty("org.slf4j.simpleLogger.showShortLogName", "false"); System.setProperty("org.slf4j.simpleLogger.showDateTime", "true"); System.setProperty("org.slf4j.simpleLogger.dateTimeFormat", "yyyy-MM-dd'T'HH:mm:ss.SSSXX"); - LibSignalLogger.initLogger(); + Manager.initLogger(); } else { System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "info"); System.setProperty("org.slf4j.simpleLogger.showThreadName", "false"); System.setProperty("org.slf4j.simpleLogger.showShortLogName", "true"); System.setProperty("org.slf4j.simpleLogger.showDateTime", "false"); } + SLF4JBridgeHandler.removeHandlersForRootLogger(); + SLF4JBridgeHandler.install(); + // java.util.logging.Logger.getLogger("").setLevel(java.util.logging.Level.FINEST); } private static int getStatusForError(final CommandException e) {