UNPKG

2.08 kBJavaScriptView Raw
1class LoggerComponent {
2 constructor (context) {
3 this._context = context
4 this.init()
5 }
6
7 init () {
8 this._logger = console
9 }
10
11 getLogger () {
12 return this._logger
13 }
14}
15
16class DecoratedContextLogger {
17 constructor (logger, logContextName) {
18 this._context = logContextName
19 this._logger = logger
20 }
21
22 log (level, log, data) {
23 this._logger.log(level, '[' + this._context + '] ' + log, data)
24 }
25
26 view (data) {
27 var dataObj = {}
28 if (typeof data !== 'undefined' && data !== null) {
29 dataObj.data = data
30 }
31 this._logger.log('info', '[' + this._context + '] ', dataObj)
32 }
33
34 info (log, data) {
35 var dataObj = {}
36 if (typeof data !== 'undefined' && data !== null) {
37 dataObj.data = data
38 }
39 this._logger.log('info', '[' + this._context + '] ' + log, dataObj)
40 }
41
42 warn (log, data) {
43 var dataObj = {}
44 if (typeof data !== 'undefined' && data != null) {
45 dataObj.data = data
46 }
47 this._logger.log('warn', '[' + this._context + '] ' + log, dataObj)
48 }
49
50 error (log, exception, data) {
51 var dataObj = {}
52 if (typeof data !== 'undefined' && data != null) {
53 dataObj.data = data
54 }
55 if (typeof exception !== 'undefined' && exception != null) {
56 dataObj.ex = exception
57 }
58 this._logger.log('error', '[' + this._context + '] ' + log, {
59 stackTrace: exception.stack,
60 data: dataObj.data
61 })
62 }
63
64 debug (log, data) {
65 var dataObj = {}
66 if (typeof data !== 'undefined' && data != null) {
67 dataObj.data = data
68 }
69 this._logger.log('debug', '[' + this._context + '] ' + log, dataObj)
70 }
71}
72
73class LogManager {
74 constructor (loggerComponent) {
75 this._loggerComponent = loggerComponent
76 }
77
78 getLogger (logContextName) {
79 var decoratedLogger = new DecoratedContextLogger(this._loggerComponent.getLogger(), logContextName)
80 return decoratedLogger
81 }
82}
83
84export default {
85 configure: function configure (context) {
86 var contextLoggerComponent = new LoggerComponent(context)
87 return new LogManager(contextLoggerComponent)
88 }
89}