diff --git a/docs/install/docker.md b/docs/install/docker.md index 796e03b..db3d23c 100644 --- a/docs/install/docker.md +++ b/docs/install/docker.md @@ -20,3 +20,6 @@ docker run --rm -e MATRIX_DOMAIN=example.org -v /data/mxisd/etc:/etc/mxisd -v /d ``` For more info, including the list of possible tags, see [the public repository](https://hub.docker.com/r/kamax/mxisd/) + +## Troubleshoot +Please read the [Troubleshooting guide](../troubleshooting.md). \ No newline at end of file diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index abbb323..b96972d 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -19,6 +19,11 @@ If you use the [Docker image](install/docker.md), this goes to the container log For any other platform, please refer to your package maintainer. +### Increase verbosity +To increase log verbosity and better track issues, the following means are available: +- Add the `-v` command line parameter +- Use the environment variable and value `MXISD_LOG_LEVEL=debug` + ### Reading them Before reporting an issue, it is important to produce clean and complete logs so they can be understood. diff --git a/src/main/java/io/kamax/mxisd/MxisdStandaloneExec.java b/src/main/java/io/kamax/mxisd/MxisdStandaloneExec.java index bf0f7f9..73d3292 100644 --- a/src/main/java/io/kamax/mxisd/MxisdStandaloneExec.java +++ b/src/main/java/io/kamax/mxisd/MxisdStandaloneExec.java @@ -36,6 +36,11 @@ public class MxisdStandaloneExec { private static final Logger log = LoggerFactory.getLogger("App"); public static void main(String[] args) { + String logLevel = System.getenv("MXISD_LOG_LEVEL"); + if (StringUtils.isNotBlank(logLevel)) { + System.setProperty("org.slf4j.simpleLogger.log.io.kamax.mxisd", logLevel); + } + try { MxisdConfig cfg = null; Iterator argsIt = Arrays.asList(args).iterator(); @@ -46,8 +51,14 @@ public class MxisdStandaloneExec { System.out.println(" -h, --help Show this help message"); System.out.println(" --version Print the version then exit"); System.out.println(" -c, --config Set the configuration file location"); + System.out.println(" -v Increase log level (log more info)"); + System.out.println(" -vv Further increase log level"); System.out.println(" "); System.exit(0); + } else if (StringUtils.equals(arg, "-v")) { + System.setProperty("org.slf4j.simpleLogger.log.io.kamax.mxisd", "debug"); + } else if (StringUtils.equals(arg, "-vv")) { + System.setProperty("org.slf4j.simpleLogger.log.io.kamax.mxisd", "trace"); } else if (StringUtils.equalsAny(arg, "-c", "--config")) { String cfgFile = argsIt.next(); cfg = YamlConfigLoader.loadFromFile(cfgFile); @@ -61,13 +72,13 @@ public class MxisdStandaloneExec { } } - log.info("mxisd starting"); - log.info("Version: {}", Mxisd.Version); - if (Objects.isNull(cfg)) { cfg = YamlConfigLoader.tryLoadFromFile("mxisd.yaml").orElseGet(MxisdConfig::new); } + log.info("mxisd starting"); + log.info("Version: {}", Mxisd.Version); + HttpMxisd mxisd = new HttpMxisd(cfg); Runtime.getRuntime().addShutdownHook(new Thread(() -> { mxisd.stop(); diff --git a/src/main/java/io/kamax/mxisd/config/RegisterConfig.java b/src/main/java/io/kamax/mxisd/config/RegisterConfig.java index 515aab4..fd9de62 100644 --- a/src/main/java/io/kamax/mxisd/config/RegisterConfig.java +++ b/src/main/java/io/kamax/mxisd/config/RegisterConfig.java @@ -69,16 +69,16 @@ public class RegisterConfig { } private List buildPatterns(List domains) { - log.info("Building email policy"); + log.debug("Building email policy"); return domains.stream().map(d -> { if (StringUtils.startsWith(d, "*")) { - log.info("Found domain and subdomain policy"); + log.debug("Found domain and subdomain policy"); d = "(.*)" + d.substring(1); } else if (StringUtils.startsWith(d, ".")) { - log.info("Found subdomain-only policy"); + log.debug("Found subdomain-only policy"); d = "(.*)" + d; } else { - log.info("Found domain-only policy"); + log.debug("Found domain-only policy"); } return "([^@]+)@" + d.replace(".", "\\."); @@ -175,10 +175,10 @@ public class RegisterConfig { } public void build() { - log.info("--- Registration config ---"); + log.debug("--- Registration config ---"); - log.info("Before Build"); - log.info(GsonUtil.getPrettyForLog(this)); + log.debug("Before Build"); + log.debug(GsonUtil.getPrettyForLog(this)); new HashMap<>(getPolicy().getThreepid()).forEach((medium, policy) -> { if (ThreePidMedium.Email.is(medium)) { @@ -194,8 +194,8 @@ public class RegisterConfig { getPolicy().getThreepid().put(medium, policy); }); - log.info("After Build"); - log.info(GsonUtil.getPrettyForLog(this)); + log.debug("After Build"); + log.debug(GsonUtil.getPrettyForLog(this)); } } diff --git a/src/main/resources/simplelogger.properties b/src/main/resources/simplelogger.properties index b509437..fce781f 100644 --- a/src/main/resources/simplelogger.properties +++ b/src/main/resources/simplelogger.properties @@ -1,2 +1,4 @@ org.slf4j.simpleLogger.logFile=System.out org.slf4j.simpleLogger.log.org.xnio=warn +org.slf4j.simpleLogger.log.com.j256.ormlite.table.TableUtils=warn +org.slf4j.simpleLogger.log.com.mchange.v2.log.MLog=warn