UNPKG

2.43 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const logLevel_1 = require("./options/logLevel");
4const events_1 = require("events");
5class Logger extends events_1.EventEmitter {
6 constructor(fileName, debugName, logLevel = logLevel_1.LogLevel.Info, applicationName) {
7 super();
8 this.fileName = fileName;
9 this.debuglog = require('debug')(debugName);
10 this._applicationName = applicationName || 'application';
11 if (process.env.NODE_LOG_CONSOLE === 'true') {
12 this.on(fileName, (data) => {
13 console.log(data);
14 });
15 }
16 this.level = logLevel;
17 }
18 close() {
19 return true;
20 }
21 produce(level, ...args) {
22 const logargs = args.map(item => arg(item));
23 this.debuglog(...args);
24 this.emit(this.fileName, Object.assign({ level, name: this._applicationName }, logargs));
25 }
26 log(...args) {
27 this.trace(...args);
28 }
29 info(...args) {
30 if (logLevel_1.LogLevel.Info <= this.level) {
31 this.produce('info', ...args);
32 }
33 }
34 warn(...args) {
35 if (logLevel_1.LogLevel.Warn <= this.level) {
36 this.produce('warning', ...args);
37 }
38 }
39 debug(...args) {
40 this.trace(...args);
41 }
42 error(...args) {
43 console.error(JSON.stringify(args));
44 this.produce('error', ...args);
45 }
46 trace(...args) {
47 if (logLevel_1.LogLevel.Trace <= this.level) {
48 this.produce('trace', ...args);
49 }
50 }
51 silly(...args) {
52 this.trace(...args);
53 }
54}
55exports.Logger = Logger;
56function arg(singleArg) {
57 if (singleArg)
58 try {
59 if (typeof singleArg === 'function')
60 return `func ${singleArg.name}`;
61 if (singleArg.stack && singleArg.message) {
62 let a = { stack: singleArg.stack, message: singleArg.message };
63 return JSON.stringify(a);
64 }
65 else if (typeof singleArg === 'object') {
66 return JSON.stringify(singleArg);
67 }
68 else {
69 if (typeof singleArg === 'string') {
70 return singleArg.replace(/\r\n/g, '');
71 }
72 return singleArg;
73 }
74 }
75 catch (error) {
76 return '[circular]';
77 }
78 return '';
79}
80//# sourceMappingURL=loggerClass.js.map
\No newline at end of file