From c8c65d2e927b406f1b9fa62bbaaf0c7eab032a60 Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Mon, 9 Nov 2020 15:14:30 +0100 Subject: [PATCH] Add verbose logging option Add option to pass the --verbose flag to the Factorio server. --- docs/configuration.md | 8 ++++++++ packages/lib/config/definitions.js | 6 ++++++ packages/lib/factorio/server.js | 7 +++++++ packages/slave/slave.js | 1 + 4 files changed, 22 insertions(+) diff --git a/docs/configuration.md b/docs/configuration.md index 0ab53847..5e7f1ac1 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -280,6 +280,14 @@ here overrides the properties there. Defaults to {"tags":["clusterio"],"auto_pause":false}. +### factorio.verbose_logging + +Pass the `--verbose` flag to Factorio when starting the server. This +prints more messages to the log. + +Defaults to false + + ### factorio.strip_paths Strip down absolute paths in the server log going to files inside the diff --git a/packages/lib/config/definitions.js b/packages/lib/config/definitions.js index 87709a41..b1ed056b 100644 --- a/packages/lib/config/definitions.js +++ b/packages/lib/config/definitions.js @@ -250,6 +250,12 @@ FactorioGroup.define({ "auto_pause": false, }, }); +FactorioGroup.define({ + name: "verbose_logging", + description: "Enable verbose logging on the Factorio server", + type: "boolean", + initial_value: false, +}); FactorioGroup.define({ name: "strip_paths", description: "Strip down instance paths in the log", diff --git a/packages/lib/factorio/server.js b/packages/lib/factorio/server.js index 78b6b226..842bb1f7 100644 --- a/packages/lib/factorio/server.js +++ b/packages/lib/factorio/server.js @@ -513,6 +513,8 @@ class FactorioServer extends events.EventEmitter { * @param {number} options.gamePort - UDP port to host game on. * @param {number} options.rconPort - TCP port to use for RCON. * @param {string} options.rconPassword - Password use for RCON. + * @param {boolean} options.enableWhitelist - Turn on whitelisting. + * @param {boolean} options.verboseLogging - Enable verbose logging. * @param {boolean} options.stripPaths - Strip paths in the console. */ constructor(factorioDir, writeDir, options) { @@ -534,6 +536,8 @@ class FactorioServer extends events.EventEmitter { this.rconPassword = options.rconPassword; /** Enable player whitelist */ this.enableWhitelist = options.enableWhitelist; + /** Enable verbose logging */ + this.verboseLogging = options.verboseLogging; this._state = "new"; this._server = null; this._rconClient = null; @@ -810,6 +814,7 @@ class FactorioServer extends events.EventEmitter { [ "--config", this.writePath("config.ini"), "--create", this.writePath("saves", name), + ...(this.verboseLogging ? ["--verbose"] : []), ], { detached: true, @@ -852,6 +857,7 @@ class FactorioServer extends events.EventEmitter { "--rcon-port", this.rconPort, "--rcon-password", this.rconPassword, ...(this.enableWhitelist ? ["--use-server-whitelist"] : []), + ...(this.verboseLogging ? ["--verbose"] : []), ], { detached: true, @@ -886,6 +892,7 @@ class FactorioServer extends events.EventEmitter { "--rcon-port", this.rconPort, "--rcon-password", this.rconPassword, ...(this.enableWhitelist ? ["--use-server-whitelist"] : []), + ...(this.verboseLogging ? ["--verbose"] : []), ], { detached: true, diff --git a/packages/slave/slave.js b/packages/slave/slave.js index e97666ec..19a9ea11 100755 --- a/packages/slave/slave.js +++ b/packages/slave/slave.js @@ -135,6 +135,7 @@ class Instance extends libLink.Link{ rconPort: this.config.get("factorio.rcon_port"), rconPassword: this.config.get("factorio.rcon_password"), enableWhitelist: this.config.get("factorio.enable_whitelist"), + verboseLogging: this.config.get("factorio.verbose_logging"), stripPaths: this.config.get("factorio.strip_paths"), };