Improve logging

- Give means to increase logging verbosity
- Explain how to do in the troubleshooting guide
This commit is contained in:
Max Dor
2019-04-27 17:26:38 +02:00
parent ea58b6985a
commit 5ed0c66cfd
5 changed files with 33 additions and 12 deletions

View File

@@ -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/) 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).

View File

@@ -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. 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 ### Reading them
Before reporting an issue, it is important to produce clean and complete logs so they can be understood. Before reporting an issue, it is important to produce clean and complete logs so they can be understood.

View File

@@ -36,6 +36,11 @@ public class MxisdStandaloneExec {
private static final Logger log = LoggerFactory.getLogger("App"); private static final Logger log = LoggerFactory.getLogger("App");
public static void main(String[] args) { 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 { try {
MxisdConfig cfg = null; MxisdConfig cfg = null;
Iterator<String> argsIt = Arrays.asList(args).iterator(); Iterator<String> argsIt = Arrays.asList(args).iterator();
@@ -46,8 +51,14 @@ public class MxisdStandaloneExec {
System.out.println(" -h, --help Show this help message"); System.out.println(" -h, --help Show this help message");
System.out.println(" --version Print the version then exit"); System.out.println(" --version Print the version then exit");
System.out.println(" -c, --config Set the configuration file location"); 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.out.println(" ");
System.exit(0); 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")) { } else if (StringUtils.equalsAny(arg, "-c", "--config")) {
String cfgFile = argsIt.next(); String cfgFile = argsIt.next();
cfg = YamlConfigLoader.loadFromFile(cfgFile); cfg = YamlConfigLoader.loadFromFile(cfgFile);
@@ -61,13 +72,13 @@ public class MxisdStandaloneExec {
} }
} }
log.info("mxisd starting");
log.info("Version: {}", Mxisd.Version);
if (Objects.isNull(cfg)) { if (Objects.isNull(cfg)) {
cfg = YamlConfigLoader.tryLoadFromFile("mxisd.yaml").orElseGet(MxisdConfig::new); cfg = YamlConfigLoader.tryLoadFromFile("mxisd.yaml").orElseGet(MxisdConfig::new);
} }
log.info("mxisd starting");
log.info("Version: {}", Mxisd.Version);
HttpMxisd mxisd = new HttpMxisd(cfg); HttpMxisd mxisd = new HttpMxisd(cfg);
Runtime.getRuntime().addShutdownHook(new Thread(() -> { Runtime.getRuntime().addShutdownHook(new Thread(() -> {
mxisd.stop(); mxisd.stop();

View File

@@ -69,16 +69,16 @@ public class RegisterConfig {
} }
private List<String> buildPatterns(List<String> domains) { private List<String> buildPatterns(List<String> domains) {
log.info("Building email policy"); log.debug("Building email policy");
return domains.stream().map(d -> { return domains.stream().map(d -> {
if (StringUtils.startsWith(d, "*")) { if (StringUtils.startsWith(d, "*")) {
log.info("Found domain and subdomain policy"); log.debug("Found domain and subdomain policy");
d = "(.*)" + d.substring(1); d = "(.*)" + d.substring(1);
} else if (StringUtils.startsWith(d, ".")) { } else if (StringUtils.startsWith(d, ".")) {
log.info("Found subdomain-only policy"); log.debug("Found subdomain-only policy");
d = "(.*)" + d; d = "(.*)" + d;
} else { } else {
log.info("Found domain-only policy"); log.debug("Found domain-only policy");
} }
return "([^@]+)@" + d.replace(".", "\\."); return "([^@]+)@" + d.replace(".", "\\.");
@@ -175,10 +175,10 @@ public class RegisterConfig {
} }
public void build() { public void build() {
log.info("--- Registration config ---"); log.debug("--- Registration config ---");
log.info("Before Build"); log.debug("Before Build");
log.info(GsonUtil.getPrettyForLog(this)); log.debug(GsonUtil.getPrettyForLog(this));
new HashMap<>(getPolicy().getThreepid()).forEach((medium, policy) -> { new HashMap<>(getPolicy().getThreepid()).forEach((medium, policy) -> {
if (ThreePidMedium.Email.is(medium)) { if (ThreePidMedium.Email.is(medium)) {
@@ -194,8 +194,8 @@ public class RegisterConfig {
getPolicy().getThreepid().put(medium, policy); getPolicy().getThreepid().put(medium, policy);
}); });
log.info("After Build"); log.debug("After Build");
log.info(GsonUtil.getPrettyForLog(this)); log.debug(GsonUtil.getPrettyForLog(this));
} }
} }

View File

@@ -1,2 +1,4 @@
org.slf4j.simpleLogger.logFile=System.out org.slf4j.simpleLogger.logFile=System.out
org.slf4j.simpleLogger.log.org.xnio=warn 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