Skip to content

Commit 5184300

Browse files
committed
Add docstrings
1 parent d1d36e4 commit 5184300

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

lib/log.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ const defaultLevelFormatter = (level) => {
2828

2929
const defaultTemplate = '[%t] %l [%n]:'
3030

31+
// "Nice" default options, they make log lines like:
32+
// [2019-02-18T00:37:56.007] WARN [root]: This is a warning message
33+
// With colored log level, according to serverity.
3134
const defaultOptions = {
3235
levelFormatter: defaultLevelFormatter,
3336
timestampFormatter: defaultTimestampFormatter,
@@ -38,13 +41,31 @@ const defaultOptions = {
3841

3942
const _loggersByName = {}
4043

44+
/**
45+
* Subclass of loglevel's Logger,
46+
* Preset to use loglevel-plugin-prefix with some nice default options.
47+
* Can obtain child loggers by calling .getLogger, they will inherit
48+
* parent's options.
49+
*/
4150
class MonkLogger extends logLevel.constructor {
4251
constructor (name, level, options) {
4352
super(name, level)
4453
this.options = {...defaultOptions}
4554
this.configure(options)
4655
}
4756

57+
/**
58+
* Configure the logger, accepts all loglevel-plugin-prefix options
59+
* and the loglevel (`level` key).
60+
*
61+
* @param {object} options - new option values to update
62+
* @param {boolean} [reset=false] - if false (the default), it will keep
63+
* and update current options (e.g. options inherited from parents or
64+
* a previous call to configure). When true, if will first reset options
65+
* to default ones, and then update with supplied ones.
66+
* Therefore, you can use .configure({}, true) to completely reset
67+
* options to defaults.
68+
*/
4869
configure (options, reset = false) {
4970
this.options = {
5071
...(reset ? defaultOptions : this.options),
@@ -54,6 +75,12 @@ class MonkLogger extends logLevel.constructor {
5475
prefix.apply(this, this.options)
5576
}
5677

78+
/**
79+
*
80+
* @param {string} name - child logger name
81+
* @param {string} level - only output log messages of at least this level
82+
* @param {object} options - loglevel-plugin-prefix options
83+
*/
5784
getLogger (name, level, options) {
5885
if (typeof name !== "string" || name === "") {
5986
throw new TypeError("You must supply a name when creating a logger.")
@@ -72,4 +99,6 @@ prefix.reg(logLevel)
7299
const defaultLogger = new MonkLogger('root')
73100
defaultLogger.getLoggers = () => _loggersByName
74101

102+
// Export default logger. Can be used directly, or can be used
103+
// to obtain child loggers.
75104
module.exports = defaultLogger

0 commit comments

Comments
 (0)