diff --git a/package.json b/package.json index 107d6c95d..db3b94f22 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "basic-auth": "2.0.1", "bcryptjs": "3.0.2", "body-parser": "1.20.3", + "chalk": "^4.1.2", "cheerio": "1.0.0-rc.10", "clone": "2.1.2", "content-type": "1.0.5", diff --git a/packages/node_modules/@node-red/util/lib/log.js b/packages/node_modules/@node-red/util/lib/log.js index 7b7e9b2dc..14b93d5b5 100644 --- a/packages/node_modules/@node-red/util/lib/log.js +++ b/packages/node_modules/@node-red/util/lib/log.js @@ -23,6 +23,7 @@ var util = require("util"); var EventEmitter = require("events").EventEmitter; var i18n = require("./i18n"); +const chalk = require("chalk"); var levels = { off: 1, @@ -47,6 +48,17 @@ var levelNames = { 99: "metric" }; +var levelColours = { + 10: 'red', + 20: 'red', + 30: 'yellow', + 40: 'white', + 50: 'cyan', + 60: 'gray', + 98: 'white', + 99: 'white' +}; + var logHandlers = []; var verbose; @@ -75,28 +87,27 @@ LogHandler.prototype.shouldReportMessage = function(msglevel) { msglevel <= this.logLevel; } - // Older versions of Node-RED used the deprecated util.log function. // With Node.js 22, use of that function causes warnings. So here we // are replicating the same format output to ensure we don't break any // log parsing that happens in the real world. const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -const utilLog = function (msg) { +const utilLog = function (msg, level) { const d = new Date(); const time = [ d.getHours().toString().padStart(2, '0'), d.getMinutes().toString().padStart(2, '0'), d.getSeconds().toString().padStart(2, '0') ].join(':'); - console.log(`${d.getDate()} ${months[d.getMonth()]} ${time} - ${msg}`) + console.log(chalk[levelColours[level] || 'white'](`${d.getDate()} ${months[d.getMonth()]} ${time} - ${msg}`)) } var consoleLogger = function(msg) { if (msg.level == log.METRIC || msg.level == log.AUDIT) { - utilLog("["+levelNames[msg.level]+"] "+JSON.stringify(msg)); + utilLog("["+levelNames[msg.level]+"] "+JSON.stringify(msg), msg.level); } else { if (verbose && msg.msg && msg.msg.stack) { - utilLog("["+levelNames[msg.level]+"] "+(msg.type?"["+msg.type+":"+(msg.name||msg.id)+"] ":"")+msg.msg.stack); + utilLog("["+levelNames[msg.level]+"] "+(msg.type?"["+msg.type+":"+(msg.name||msg.id)+"] ":"")+msg.msg.stack, msg.level); } else { var message = msg.msg; try { @@ -107,7 +118,7 @@ var consoleLogger = function(msg) { message = 'Exception trying to log: '+util.inspect(message); } - utilLog("["+levelNames[msg.level]+"] "+(msg.type?"["+msg.type+":"+(msg.name||msg.id)+"] ":"")+message); + utilLog("["+levelNames[msg.level]+"] "+(msg.type?"["+msg.type+":"+(msg.name||msg.id)+"] ":"")+message, msg.level); } } } diff --git a/packages/node_modules/@node-red/util/package.json b/packages/node_modules/@node-red/util/package.json index 5d0ff15bd..dffc817b0 100644 --- a/packages/node_modules/@node-red/util/package.json +++ b/packages/node_modules/@node-red/util/package.json @@ -15,6 +15,7 @@ } ], "dependencies": { + "chalk": "^4.1.2", "fs-extra": "11.3.0", "i18next": "24.2.3", "json-stringify-safe": "5.0.1",