diff --git a/packages/lib/logging.js b/packages/lib/logging.js index 97743f56..9dd1068e 100644 --- a/packages/lib/logging.js +++ b/packages/lib/logging.js @@ -32,9 +32,14 @@ class ConsoleTransport extends Transport { super(options); this.errorLevels = new Set(options.errorLevels || ["fatal", "error"]); this.warnLevels = new Set(options.warnLevels || ["warn"]); + this.filter = options.filter || (() => true); } log(info, callback) { + if (!this.filter(info)) { + return callback(); + } + /* eslint-disable no-console */ if (this.errorLevels.has(info[LEVEL])) { console.error(info[MESSAGE]); @@ -44,7 +49,7 @@ class ConsoleTransport extends Transport { console.log(info[MESSAGE]); } /* eslint-enable no-console */ - callback(); + return callback(); } } diff --git a/packages/slave/slave.js b/packages/slave/slave.js index f58c4c31..ac0cf4b8 100755 --- a/packages/slave/slave.js +++ b/packages/slave/slave.js @@ -27,7 +27,7 @@ const libPluginLoader = require("@clusterio/lib/plugin_loader"); const libErrors = require("@clusterio/lib/errors"); const libConfig = require("@clusterio/lib/config"); const libSharedCommands = require("@clusterio/lib/shared_commands"); -const { ConsoleTransport, levels, logger } = require("@clusterio/lib/logging"); +const { ConsoleTransport, FilteredTransport, levels, logger } = require("@clusterio/lib/logging"); const libLoggingUtils = require("@clusterio/lib/logging_utils"); const Slave = require("./src/Slave"); @@ -126,6 +126,7 @@ async function startSlave() { logger.add(new ConsoleTransport({ level: args.logLevel, format: new libLoggingUtils.TerminalFormat(), + filter: info => info.instance_id === undefined, })); }