Failed Conditions
Push — master ( 2a10ca...dc3f81 )
by Yo
01:45
created

lib/logger/Logger.js   A

Size

Lines of Code 112

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 68.75%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
nc 1
dl 0
loc 112
ccs 11
cts 16
cp 0.6875
rs 10
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A Logger.js ➔ ??? 0 9 2
1
"use strict";
2
3
/**
4
 * @param {Object} winstonLogger
5
 * @param {string} level
6
 * @param {string} message
7
 * @param {Object} meta
8
 */
9 1
const wrapWinston = (winstonLogger, level, message, meta) => {
10 16
    const argList = [];
11
12 16
    argList.push(message);
13 16
    if (meta) {
14 16
        argList.push(meta);
15
    }
16 16
    winstonLogger[level].apply(winstonLogger, argList);
17
};
18
19
class Logger {
20
    /**
21
     *
22
     * @param {winston.Logger} logger
23
     */
24
    constructor(logger) {
25 9
        this.logger = logger;
26
    }
27
28
    /**
29
     * @public
30
     *
31
     * @param {string} message
32
     * @param {Object} meta
33
     */
34
    debug(message, meta = {}) {
35 16
        this.log('debug', message, meta);
36
    }
37
38
    /**
39
     * @public
40
     *
41
     * @param {string} message
42
     * @param {Object} meta
43
     */
44
    info(message, meta = {}) {
45
        this.log('info', message, meta);
46
    }
47
48
    /**
49
     * @public
50
     *
51
     * @param {string} message
52
     * @param {Object} meta
53
     */
54
    warning(message, meta = {}) {
55
        this.log('warn', message, meta);
56
    }
57
58
    /**
59
     * @public
60
     *
61
     * @param {string} message
62
     * @param {Object} meta
63
     */
64
    error(message, meta = {}) {
65
        this.log('error', message, meta);
66
    }
67
68
    /**
69
     * @protected
70
     * Could be overridden by child class
71
     *
72
     * @param {string} message
73
     * @param {Object} meta
74
     *
75
     * @returns {string}
76
     */
77
    normalizeMessage(message, meta = {}) {// eslint-disable-line no-unused-vars
78
        return message;
79
    }
80
81
    /**
82
     * @protected
83
     * Could be overridden by child class
84
     *
85
     * @param {Object} meta
86
     *
87
     * @returns {Object}
88
     */
89
    normalizeMeta(meta = {}) {
90
        return meta;
91
    }
92
93
    /**
94
     * @protected
95
     *
96
     * @param {string} level
97
     * @param {string} message
98
     * @param {Object} meta
99
     */
100
    log(level, message, meta = {}) {
101 16
        meta = this.normalizeMeta(meta);
102
103 16
        wrapWinston(
104
            this.logger,
105
            level,
106
            this.normalizeMessage(message, meta),
107
            meta
108
        );
109
    }
110
}
111
112
module.exports = Logger;
113