diff --git a/core/modules/commands/server.js b/core/modules/commands/server.js index 8f3804c5b..d824173ee 100644 --- a/core/modules/commands/server.js +++ b/core/modules/commands/server.js @@ -300,8 +300,8 @@ Command.prototype.execute = function() { pathprefix: pathprefix }); this.server.listen(port,host); - console.log("Serving on " + host + ":" + port); - console.log("(press ctrl-C to exit)"); + $tw.utils.log("Serving on " + host + ":" + port,"brown/orange"); + $tw.utils.log("(press ctrl-C to exit)","red"); // Warn if required plugins are missing if(!$tw.wiki.getTiddler("$:/plugins/tiddlywiki/tiddlyweb") || !$tw.wiki.getTiddler("$:/plugins/tiddlywiki/filesystem")) { $tw.utils.warning("Warning: Plugins required for client-server operation (\"tiddlywiki/filesystem\" and \"tiddlywiki/tiddlyweb\") are missing from tiddlywiki.info file"); diff --git a/core/modules/syncer.js b/core/modules/syncer.js index 86d3faf28..4916a2b09 100644 --- a/core/modules/syncer.js +++ b/core/modules/syncer.js @@ -42,7 +42,7 @@ function Syncer(options) { this.fallbackInterval = options.fallbackInterval || this.fallbackInterval; this.pollTimerInterval = options.pollTimerInterval || this.pollTimerInterval; // Make a logger - this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : "") + (this.syncadaptor.name ? ("-" + this.syncadaptor.name) : "")); + this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : "") + (this.syncadaptor.name ? ("-" + this.syncadaptor.name) : ""),{colour: "cyan"}); // Compile the dirty tiddler filter this.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter)); // Record information for known tiddlers diff --git a/core/modules/utils/logger.js b/core/modules/utils/logger.js index babb322b5..6bafad01e 100644 --- a/core/modules/utils/logger.js +++ b/core/modules/utils/logger.js @@ -17,8 +17,10 @@ var ALERT_TAG = "$:/tags/Alert"; /* Make a new logger */ -function Logger(componentName) { +function Logger(componentName,options) { + options = options || {}; this.componentName = componentName || ""; + this.colour = options.colour || "white"; } /* @@ -26,7 +28,7 @@ Log a message */ Logger.prototype.log = function(/* args */) { if(console !== undefined && console.log !== undefined) { - return Function.apply.call(console.log, console, [this.componentName + ":"].concat(Array.prototype.slice.call(arguments,0))); + return Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + ":"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour())); } }; diff --git a/core/modules/utils/utils.js b/core/modules/utils/utils.js index 742ae9082..e276defbd 100644 --- a/core/modules/utils/utils.js +++ b/core/modules/utils/utils.js @@ -12,11 +12,43 @@ Various static utility functions. /*global $tw: false */ "use strict"; +/* +Display a message, in colour if we're on a terminal +*/ +exports.log = function(text,colour) { + console.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text); +}; + +exports.terminalColour = function(colour) { + if($tw.node) { + if(colour) { + var code = exports.terminalColourLookup[colour]; + if(code) { + return "\x1b[" + code + "m"; + } + } else { + return "\x1b[0m"; // Cancel colour + } + } + return ""; +}; + +exports.terminalColourLookup = { + "black": "0;30", + "red": "0;31", + "green": "0;32", + "brown/orange": "0;33", + "blue": "0;34", + "purple": "0;35", + "cyan": "0;36", + "light gray": "0;37" +}; + /* Display a warning, in colour if we're on a terminal */ exports.warning = function(text) { - console.log($tw.node ? "\x1b[1;33m" + text + "\x1b[0m" : text); + exports.log(text,"brown/orange"); }; /* diff --git a/plugins/tiddlywiki/filesystem/filesystemadaptor.js b/plugins/tiddlywiki/filesystem/filesystemadaptor.js index bcbb687ff..c824bd0fb 100644 --- a/plugins/tiddlywiki/filesystem/filesystemadaptor.js +++ b/plugins/tiddlywiki/filesystem/filesystemadaptor.js @@ -19,7 +19,7 @@ var fs = $tw.node ? require("fs") : null, function FileSystemAdaptor(options) { var self = this; this.wiki = options.wiki; - this.logger = new $tw.utils.Logger("FileSystem"); + this.logger = new $tw.utils.Logger("filesystem",{colour: "blue"}); // Create the /tiddlers folder if it doesn't exist $tw.utils.createDirectory($tw.boot.wikiTiddlersPath); }