1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | const Logger = require('./Logger' );
|
9 | const AbstractAppender = require('./AbstractAppender' );
|
10 |
|
11 |
|
12 | const ConsoleAppender = function(opts) {
|
13 | 'use strict';
|
14 |
|
15 |
|
16 | const options = Object.assign({}, opts);
|
17 |
|
18 | const appender = this;
|
19 | const typeName = options.typeName || 'ConsoleAppender';
|
20 | const writer = options.writer || console.log;
|
21 |
|
22 | let level = options.level || Logger.STANDARD_LEVELS[0];
|
23 | let levels = options.levels || Logger.STANDARD_LEVELS;
|
24 | let currentLevel = levels.indexOf( level );
|
25 |
|
26 | options.typeName = typeName;
|
27 | AbstractAppender.extend( this, options );
|
28 |
|
29 | |
30 |
|
31 |
|
32 |
|
33 | this.formatter = function(entry) {
|
34 | const fields = appender.formatEntry( entry );
|
35 |
|
36 | return fields.join( appender.separator );
|
37 | };
|
38 |
|
39 | |
40 |
|
41 |
|
42 |
|
43 | this.write = function(entry) {
|
44 | if (levels.indexOf( entry.level ) >= currentLevel) {
|
45 | writer( appender.formatter( entry ));
|
46 | }
|
47 | };
|
48 |
|
49 | this.setLevel = function(level) {
|
50 | const idx = levels.indexOf( level );
|
51 | if (idx >= 0) {
|
52 | currentLevel = idx;
|
53 | }
|
54 | };
|
55 | };
|
56 |
|
57 | module.exports = ConsoleAppender;
|