-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
145 lines (124 loc) · 3.75 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/*****************************************************************************
* log_listener.js.js
* CONFIDENTIAL Copyright 2016 James Pravetz. All Rights Reserved.
*****************************************************************************/
var self = {
/**
* Global LogManager singleton
*/
_gLogManager: undefined,
/**
* @return {LogManager} class. Use this class to create your own LogManager if you don't
* want a global LogManager.
* @ignore
*/
LogManager: require('./src/log_mgr'),
/**
* @return {Logger} class
* @ignore
*/
Logger: require('./src/logger'),
/**
* Return the global LogManager singleton. Will create the singleton if it does not already
* exist.
* @param options
* @returns {LogManager} Existing or new global LogManager object
*/
getLogManager: function (options) {
if (!self._gLogManager) {
self._gLogManager = new self.LogManager(options);
}
return self._gLogManager;
},
/**
* Test if the global LogManager singleton has been initialized
* @returns {boolean} Do we have a global LogManager singleton?
*/
hasLogManager: function () {
return self._gLogManager ? true : false;
},
/**
* Get a Logger object upon which logging calls can be made.
* @param name {string|string[]} Name of module. If an array, then joined by '.'.
* @param context {Object} Context object, with optional req and res properties.
* @returns {Logger} New Logger object
*/
getLogger: function (name, context) {
return self.getLogManager().getLogger(name, context);
},
/**
* Unit test helper can be used in conjunction with callback transport.
* @param options
* @returns {LogListener}
*/
getLogListener: function (options) {
var LogListener = require('./src/log_listener');
return new LogListener(options);
},
/**
* Shortcut to calling the global LogManager's start method.
* @see {@link LogManager#start}
* @returns {LogManager}
*/
start: function () {
return self.getLogManager().start();
},
/**
* Utility formatting routines
*/
format: require('./src/format'),
/**
* @deprecated
*/
hasLogMgr: function () {
return self.hasLogManager();
},
/**
* @deprecated
*/
logMgr: function (options) {
return self.getLogManager(options);
},
/**
* @deprecated
*/
get: function (name, context) {
return self.getLogger(name, context);
},
/**
* @deprecated
*/
logListener: function (options) {
return self.getLogListener(options);
},
/**
* Return Express Middleware.
* @example
* var reqId = require('epdoc-logger').middleware().reqId;
* app.use(reqId());
*/
middleware: function () {
return {
reqId: require('./src/middleware/reqId'),
responseLogger: require('./src/middleware/response_logger'),
routeLogger: require('./src/middleware/route_logger'),
routeSeparator: require('./src/middleware/route_separator'),
errorHandler: require('./src/middleware/error_handler')
};
},
/**
* Return Koa2 Middleware. Requires node7.
* @example
* var reqId = require('epdoc-logger').koa().requestId;
* app.use(requestId());
*/
koa: function () {
return {
requestId: require('./src/koa/request_id'),
requestLogger: require('./src/koa/request_logger'),
routeInfo: require('./src/koa/route_info'),
routeSeparator: require('./src/koa/route_separator')
};
}
};
module.exports = self;