diff --git a/CHANGELOG.md b/CHANGELOG.md index 785209d..8b6bf91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 5.4.2 + +- [#472](https://github.com/megahertz/electron-log/pull/472) Add the gray color + and `log.transports.console.colorMap` option. + ## 5.4.0 - [#465](https://github.com/megahertz/electron-log/issues/465) Allow using `%c` diff --git a/README.md b/README.md index fb3dc54..c5e922c 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,7 @@ Available colors: - magenta - cyan - white + - gray For DevTools console you can use other CSS properties. diff --git a/docs/transports/console.md b/docs/transports/console.md index d388e01..fe6385b 100644 --- a/docs/transports/console.md +++ b/docs/transports/console.md @@ -4,6 +4,23 @@ Displays a log message in the console ## Options +#### `colorMap` {Record} + +Default: +``` +{ + error: 'red', + warn: 'yellow', + info: 'cyan', + verbose: 'unset', + debug: 'gray', + silly: 'gray', + default: 'unset', +} +``` + +A map of log levels to colors. + #### `format` {string | (message: LogMessage) => void} Default: `'[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text}'` diff --git a/src/core/transforms/style.js b/src/core/transforms/style.js index 16b4a44..0f43d8c 100644 --- a/src/core/transforms/style.js +++ b/src/core/transforms/style.js @@ -22,6 +22,7 @@ const ANSI_COLORS = { magenta: '\x1b[35m', cyan: '\x1b[36m', white: '\x1b[37m', + gray: '\x1b[90m', }; function styleToAnsi(style) { diff --git a/src/index.d.ts b/src/index.d.ts index 2097287..e6c53fd 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -82,6 +82,11 @@ declare namespace Logger { } interface ConsoleTransport extends Transport { + /** + * A mapping of log levels to their corresponding color name + */ + colorMap: Record; + /** * String template of function for message serialization */ diff --git a/src/node/transports/console.js b/src/node/transports/console.js index 9c7423b..d3468f7 100644 --- a/src/node/transports/console.js +++ b/src/node/transports/console.js @@ -34,6 +34,15 @@ Object.assign(consoleTransportFactory, { function consoleTransportFactory(logger) { return Object.assign(transport, { + colorMap: { + error: 'red', + warn: 'yellow', + info: 'cyan', + verbose: 'unset', + debug: 'gray', + silly: 'gray', + default: 'unset', + }, format: DEFAULT_FORMAT, level: 'silly', transforms: [ @@ -68,7 +77,11 @@ function addTemplateColors({ data, message, transport }) { return data; } - return [`color:${levelToStyle(message.level)}`, 'color:unset', ...data]; + return [ + `color:${levelToStyle(message.level, transport)}`, + 'color:unset', + ...data, + ]; } function canUseStyles(useStyleValue, level) { @@ -88,7 +101,6 @@ function formatStyles(args) { return nextTransform(args); } -function levelToStyle(level) { - const map = { error: 'red', warn: 'yellow', info: 'cyan', default: 'unset' }; - return map[level] || map.default; +function levelToStyle(level, transport) { + return transport.colorMap[level] || transport.colorMap.default; }