Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/readme.DE.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ Signale importieren und einen der default Logger verwenden.
- `error`
- `debug`
- `fatal`
- `alert`
- `fav`
- `info`
- `note`
Expand Down Expand Up @@ -217,7 +218,7 @@ Schaltet alle Logger, die zu der Instanz gehören, in den interaktiven Modus.
##### `logLevel`

- Type: `String`
- Default: `'info'`
- Default: `'debug'`

Setzte den Loglevel der erstellten Instanz. Es kann einer der folgenden Level gewählt werden:

Expand Down
1 change: 1 addition & 0 deletions docs/readme.zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ npm install signale
- `error`
- `debug`
- `fatal`
- `alert`
- `fav`
- `info`
- `note`
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"devDependencies": {
"@types/node": "^11.11.3",
"typescript": "^3.3.3333",
"xo": "*"
"xo": "^0.24.0"
},
"options": {
"default": {
Expand Down
37 changes: 29 additions & 8 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ Import signale and start using any of the default loggers.
- `error`
- `debug`
- `fatal`
- `alert`
- `fav`
- `info`
- `note`
Expand Down Expand Up @@ -136,7 +137,7 @@ const {Signale} = require('signale');
const options = {
disabled: false,
interactive: false,
logLevel: 'info',
logLevel: 'debug',
scope: 'custom',
secrets: [],
stream: process.stdout,
Expand All @@ -145,13 +146,13 @@ const options = {
badge: '**',
color: 'yellow',
label: 'reminder',
logLevel: 'info'
logLevel: 'debug'
},
santa: {
badge: '🎅',
color: 'red',
label: 'santa',
logLevel: 'info'
logLevel: 'debug'
}
}
};
Expand Down Expand Up @@ -196,7 +197,7 @@ custom.success('Custom Success Log');
<img alt="Default Loggers" src="media/override-defaults.png" width="65%">
</div>

The `options` object can hold any of the following attributes: `disabled`, `interactive`, `logLevel`, `secrets`, `stream`, `scope` and `types`.
The `options` object can hold any of the following attributes: `disabled`, `interactive`, `logLevels`, `logLevel`, `secrets`, `stream`, `scope` and `types`.

##### `disabled`

Expand All @@ -215,16 +216,36 @@ Switches all loggers belonging to the created instance into the interactive mode
##### `logLevel`

- Type: `String`
- Default: `'info'`
- Default: `'debug'`

Sets the general logging level of the created instance. Can be one of the following:

- `'info'` - Displays all messages from all loggers.
- `'timer'` - Displays messages only from the `time`, `timeEnd`, `debug`, `warn`, `error` & `fatal` loggers.
- `'debug'` - Displays messages only from the `debug`, `warn`, `error` & `fatal` loggers.
- `'debug'` - Displays all messages from all loggers.
- `'info'` - Displays messages from all loggers except `debug` level.
- `'timer'` - Displays messages only from the `time`, `timeEnd`, `warn`, `error` & `fatal` loggers.
- `'warn'` - Displays messages only from the `warn`, `error` & `fatal` loggers.
- `'error'` - Displays messages only from the `error` & `fatal` loggers.

#### `logLevels`

- Type: `Object`

Allows you to add or override log levels.

For example, a value of `{ silly: -1 }` will add a level of `silly`, which will have even lower priority than `debug`.

Default log levels are:

```json5
{
debug: 0,
info: 1,
timer: 2,
warn: 3,
error: 4
}
```

##### `secrets`

- Type: `(String|Number)[]`
Expand Down
34 changes: 19 additions & 15 deletions src/signale.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ const pkgConf = require('pkg-conf');
const pkg = require('./../package.json');
const defaultTypes = require('./types');

const defaultLogLevels = {
debug: 0,
info: 1,
timer: 2,
warn: 3,
error: 4
};

const {green, grey, red, underline, yellow} = chalk;

let isPreviousLogInteractive = false;
Expand All @@ -19,6 +27,8 @@ class Signale {
this._interactive = options.interactive || false;
this._config = Object.assign(this.packageConfiguration, options.config);
this._customTypes = Object.assign({}, options.types);
this._customLogLevels = Object.assign({}, options.logLevels);
this._logLevels = Object.assign({}, defaultLogLevels, this._customLogLevels);
this._disabled = options.disabled || false;
this._scopeName = options.scope || '';
this._timers = options.timers || new Map();
Expand Down Expand Up @@ -50,6 +60,7 @@ class Signale {
timers: this._timers,
stream: this._stream,
secrets: this._secrets,
logLevels: this._customLogLevels,
logLevel: this._generalLogLevel
});
}
Expand Down Expand Up @@ -87,16 +98,6 @@ class Signale {
return underline(this._longestLabel);
}

get _logLevels() {
return {
info: 0,
timer: 1,
debug: 2,
warn: 3,
error: 4
};
}

set configuration(configObj) {
this._config = Object.assign(this.packageConfiguration, configObj);
}
Expand All @@ -116,7 +117,7 @@ class Signale {
}

_validateLogLevel(level) {
return Object.keys(this._logLevels).includes(level) ? level : 'info';
return Object.keys(this._logLevels).includes(level) ? level : 'debug';
}

_mergeTypes(standard, custom) {
Expand Down Expand Up @@ -230,16 +231,18 @@ class Signale {
}
}

const colorize = type.color ? chalk[type.color] : x => x;

if (this._config.displayBadge && type.badge) {
signale.push(chalk[type.color](this._padEnd(type.badge, type.badge.length + 1)));
signale.push(colorize(this._padEnd(type.badge, type.badge.length + 1)));
}

if (this._config.displayLabel && type.label) {
const label = this._config.uppercaseLabel ? type.label.toUpperCase() : type.label;
if (this._config.underlineLabel) {
signale.push(chalk[type.color](this._padEnd(underline(label), this._longestUnderlinedLabel.length + 1)));
signale.push(colorize(this._padEnd(underline(label), this._longestUnderlinedLabel.length + 1)));
} else {
signale.push(chalk[type.color](this._padEnd(label, this._longestLabel.length + 1)));
signale.push(colorize(this._padEnd(label, this._longestLabel.length + 1)));
}
}

Expand Down Expand Up @@ -346,7 +349,8 @@ class Signale {
throw new Error('No scope name was defined.');
}

return new Signale(Object.assign(this.currentOptions, {scope: name}));
const SignaleConstructor = this.constructor || Signale;
return new SignaleConstructor(Object.assign(this.currentOptions, {scope: name}));
}

unscope() {
Expand Down
10 changes: 8 additions & 2 deletions src/types.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ module.exports = {
label: 'fatal',
logLevel: 'error'
},
alert: {
badge: figures('⬤'),
color: 'red',
label: 'alert',
logLevel: 'error'
},
fav: {
badge: figures('❤'),
color: 'magenta',
Expand Down Expand Up @@ -81,8 +87,8 @@ module.exports = {
logLevel: 'info'
},
debug: {
badge: figures('⬤'),
color: 'red',
badge: figures.pointerSmall,
color: '',
label: 'debug',
logLevel: 'debug'
},
Expand Down
1 change: 1 addition & 0 deletions types/signale.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ declare namespace _signale {
| 'complete'
| 'debug'
| 'error'
| 'alert'
| 'fatal'
| 'fav'
| 'info'
Expand Down