@beforeyoubid/logger-adapter 2.0.2 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -1
- package/dist/MetricLogger/__tests__/index.spec.js +193 -0
- package/dist/MetricLogger/index.d.ts +34 -0
- package/dist/MetricLogger/index.js +88 -0
- package/dist/MetricLogger/types.d.ts +12 -0
- package/dist/MetricLogger/types.js +6 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +5 -1
- package/dist/transports/logdnaWinston.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,6 +51,8 @@ can also helps you out as well.
|
|
|
51
51
|
- Also moved `createLoggerObject()` into this shared module so it's easier to use and prefix message before returning
|
|
52
52
|
the actual logger object. e.g. `createLoggerObject(`[LOG-PREFIX]`);`
|
|
53
53
|
- 
|
|
54
|
+
- **v2.0.3 onwards**
|
|
55
|
+
- Adding generic `MetricLogger`
|
|
54
56
|
|
|
55
57
|
## 1) Use Console Logger
|
|
56
58
|
|
|
@@ -165,7 +167,7 @@ module so they look like this. 
|
|
|
165
167
|
```
|
|
166
168
|
import { getLoggerObject } from '@beforeyoubid/logger-adapter';
|
|
167
169
|
|
|
168
|
-
const logger = getLoggerObject('[
|
|
170
|
+
const logger = getLoggerObject('[Your Custom Prefix]');
|
|
169
171
|
|
|
170
172
|
logger.info('the usual log string...')
|
|
171
173
|
```
|
|
@@ -173,3 +175,26 @@ module so they look like this. 
|
|
|
173
175
|
**Notes that** this function just wraps the original Winston logger instance your normally access from this line.
|
|
174
176
|
`import { logger } from '@beforeyoubid/logger-adapter';`. It only wraps and add the prefix the log line for you and
|
|
175
177
|
returns with debug, info, warn, error functions.
|
|
178
|
+
|
|
179
|
+
## MetricLogger
|
|
180
|
+
|
|
181
|
+
**Motivation:**
|
|
182
|
+
|
|
183
|
+
- Mezmo is one of the leading telemetry tools for logging and debugging
|
|
184
|
+
- We can also utilise Mezmo to collect, process and display business metrics based on log messages without extra fee on
|
|
185
|
+
the existing plan
|
|
186
|
+
- The setup is very simple and Mezmo does this out of the box
|
|
187
|
+
|
|
188
|
+
**How does it work?**
|
|
189
|
+
|
|
190
|
+
- When a JSON string (e.g. `JSON.stringify(jsonObject)`) is sent to Mezmo, Mezmo is smart enough to parse this into a
|
|
191
|
+
json object and index them automatically
|
|
192
|
+
- With this process, we can search for any value in the object and/or create a dashboard on any specific metric we see
|
|
193
|
+
fit
|
|
194
|
+
- The only drawback, the data retention is usually limited to 30 days as per the data retention policy on the account
|
|
195
|
+
|
|
196
|
+
**How to use:**
|
|
197
|
+
|
|
198
|
+
- [Sample Metric](./samples/metricLogger.md)
|
|
199
|
+
- [Sample 1](./samples/metricLogger1.sample.ts)
|
|
200
|
+
- [Sample 2](./samples/metricLogger2.sample.ts)
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
var _index = require("../index");
|
|
6
|
+
var _logger = require("../../logger");
|
|
7
|
+
function _defineProperty(obj, key, value) {
|
|
8
|
+
if (key in obj) {
|
|
9
|
+
Object.defineProperty(obj, key, {
|
|
10
|
+
value: value,
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true
|
|
14
|
+
});
|
|
15
|
+
} else {
|
|
16
|
+
obj[key] = value;
|
|
17
|
+
}
|
|
18
|
+
return obj;
|
|
19
|
+
}
|
|
20
|
+
function _objectSpread(target) {
|
|
21
|
+
for(var i = 1; i < arguments.length; i++){
|
|
22
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
23
|
+
var ownKeys = Object.keys(source);
|
|
24
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
25
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
26
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
ownKeys.forEach(function(key) {
|
|
30
|
+
_defineProperty(target, key, source[key]);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return target;
|
|
34
|
+
}
|
|
35
|
+
function ownKeys(object, enumerableOnly) {
|
|
36
|
+
var keys = Object.keys(object);
|
|
37
|
+
if (Object.getOwnPropertySymbols) {
|
|
38
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
39
|
+
if (enumerableOnly) {
|
|
40
|
+
symbols = symbols.filter(function(sym) {
|
|
41
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
keys.push.apply(keys, symbols);
|
|
45
|
+
}
|
|
46
|
+
return keys;
|
|
47
|
+
}
|
|
48
|
+
function _objectSpreadProps(target, source) {
|
|
49
|
+
source = source != null ? source : {};
|
|
50
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
51
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
52
|
+
} else {
|
|
53
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
54
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return target;
|
|
58
|
+
}
|
|
59
|
+
jest.mock("../../logger", function() {
|
|
60
|
+
return {
|
|
61
|
+
logger: {
|
|
62
|
+
info: jest.fn()
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
describe("MetricLogger", function() {
|
|
67
|
+
var defaultMetric = {
|
|
68
|
+
req: {
|
|
69
|
+
type: "myType",
|
|
70
|
+
userId: "my-user-id"
|
|
71
|
+
},
|
|
72
|
+
res: {
|
|
73
|
+
isSuccessful: true,
|
|
74
|
+
errorCode: "",
|
|
75
|
+
count: 10
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
describe("setMetric() - extended metric type", function() {
|
|
79
|
+
it("should set metric property", function() {
|
|
80
|
+
var metricLogger = new _index.MetricLogger(defaultMetric, true, _logger.logger);
|
|
81
|
+
var expectedUserId = "another-user-id";
|
|
82
|
+
var expectedResult = _objectSpreadProps(_objectSpread({}, defaultMetric), {
|
|
83
|
+
req: _objectSpreadProps(_objectSpread({}, defaultMetric.req), {
|
|
84
|
+
userId: expectedUserId
|
|
85
|
+
})
|
|
86
|
+
});
|
|
87
|
+
metricLogger.setMetric("req.userId", expectedUserId);
|
|
88
|
+
var result = metricLogger.getMetric();
|
|
89
|
+
expect(result.req.userId).toEqual(expectedUserId);
|
|
90
|
+
expect(result).toEqual(expectedResult);
|
|
91
|
+
});
|
|
92
|
+
it("should allow to set metrics", function() {
|
|
93
|
+
var metricLogger = new _index.MetricLogger(defaultMetric, true, _logger.logger);
|
|
94
|
+
var expectedUserId = "another-user-id";
|
|
95
|
+
var newCount = 20;
|
|
96
|
+
var expectedResult = {
|
|
97
|
+
req: _objectSpreadProps(_objectSpread({}, defaultMetric.req), {
|
|
98
|
+
userId: expectedUserId
|
|
99
|
+
}),
|
|
100
|
+
res: _objectSpreadProps(_objectSpread({}, defaultMetric.res), {
|
|
101
|
+
count: newCount
|
|
102
|
+
})
|
|
103
|
+
};
|
|
104
|
+
metricLogger.setMetric("req.userId", expectedUserId);
|
|
105
|
+
metricLogger.setMetric("res.count", newCount);
|
|
106
|
+
var result = metricLogger.getMetric();
|
|
107
|
+
expect(result.req.userId).toEqual(expectedUserId);
|
|
108
|
+
expect(result).toEqual(expectedResult);
|
|
109
|
+
});
|
|
110
|
+
it("should allow to set custom multi-layer metrics", function() {
|
|
111
|
+
var nestedDefaultMetric = _objectSpreadProps(_objectSpread({}, defaultMetric), {
|
|
112
|
+
res: _objectSpreadProps(_objectSpread({}, defaultMetric.res), {
|
|
113
|
+
customObject: {
|
|
114
|
+
someKey: "some-key",
|
|
115
|
+
someValue: "some-value"
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
});
|
|
119
|
+
var metricLogger = new _index.MetricLogger(nestedDefaultMetric, true, _logger.logger);
|
|
120
|
+
var expectedSomeKey = "new-key";
|
|
121
|
+
var expectedSomeValue = "new-value";
|
|
122
|
+
var expectedResult = _objectSpreadProps(_objectSpread({}, nestedDefaultMetric), {
|
|
123
|
+
res: _objectSpreadProps(_objectSpread({}, defaultMetric.res), {
|
|
124
|
+
customObject: {
|
|
125
|
+
someKey: expectedSomeKey,
|
|
126
|
+
someValue: expectedSomeValue
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
metricLogger.setMetric("res.customObject.someKey", expectedSomeKey);
|
|
131
|
+
metricLogger.setMetric("res.customObject.someValue", expectedSomeValue);
|
|
132
|
+
var result = metricLogger.getMetric();
|
|
133
|
+
expect(result).toEqual(expectedResult);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
describe("setMetric() - custom metric type", function() {
|
|
137
|
+
it("should be able to handle custom metric", function() {
|
|
138
|
+
var myDefaultMetric = {
|
|
139
|
+
productType: "myType",
|
|
140
|
+
count: 10
|
|
141
|
+
};
|
|
142
|
+
var metricLogger = new _index.MetricLogger(myDefaultMetric, true, _logger.logger);
|
|
143
|
+
var expectedProductType = "anotherType";
|
|
144
|
+
var expectedCount = 100;
|
|
145
|
+
metricLogger.setMetric("productType", expectedProductType);
|
|
146
|
+
metricLogger.setMetric("count", expectedCount);
|
|
147
|
+
var result = metricLogger.getMetric();
|
|
148
|
+
expect(result.productType).toEqual(expectedProductType);
|
|
149
|
+
expect(result.count).toEqual(expectedCount);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
describe("success()", function() {
|
|
153
|
+
it("should set success response", function() {
|
|
154
|
+
var metricLogger = new _index.MetricLogger(defaultMetric, true, _logger.logger);
|
|
155
|
+
var expectedUserId = "another-user-id";
|
|
156
|
+
var expectedResult = _objectSpreadProps(_objectSpread({}, defaultMetric), {
|
|
157
|
+
req: _objectSpreadProps(_objectSpread({}, defaultMetric.req), {
|
|
158
|
+
userId: expectedUserId,
|
|
159
|
+
isSuccessful: true,
|
|
160
|
+
errorCode: ""
|
|
161
|
+
})
|
|
162
|
+
});
|
|
163
|
+
metricLogger.setMetric("req.userId", expectedUserId);
|
|
164
|
+
var result = metricLogger.getMetric();
|
|
165
|
+
expect(result.req.userId).toEqual(expectedUserId);
|
|
166
|
+
expect(result.res.isSuccessful).toEqual(expectedResult.res.isSuccessful);
|
|
167
|
+
expect(result.res.errorCode).toEqual(expectedResult.res.errorCode);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe("error()", function() {
|
|
171
|
+
it("should set error response", function() {
|
|
172
|
+
var metricLogger = new _index.MetricLogger(defaultMetric, true, _logger.logger);
|
|
173
|
+
var expectedUserId = "another-user-id";
|
|
174
|
+
var expectedResult = {
|
|
175
|
+
req: _objectSpreadProps(_objectSpread({}, defaultMetric.req), {
|
|
176
|
+
userId: expectedUserId
|
|
177
|
+
}),
|
|
178
|
+
res: _objectSpreadProps(_objectSpread({}, defaultMetric.res), {
|
|
179
|
+
isSuccessful: false,
|
|
180
|
+
errorCode: "some-error-code"
|
|
181
|
+
})
|
|
182
|
+
};
|
|
183
|
+
metricLogger.error("some-error-code");
|
|
184
|
+
metricLogger.setMetric("res.isSuccessful", false);
|
|
185
|
+
var result = metricLogger.getMetric();
|
|
186
|
+
expect(result.req.userId).toEqual(expectedUserId);
|
|
187
|
+
expect(result.res.isSuccessful).toEqual(expectedResult.res.isSuccessful);
|
|
188
|
+
expect(result.res.errorCode).toEqual(expectedResult.res.errorCode);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9NZXRyaWNMb2dnZXIvX190ZXN0c19fL2luZGV4LnNwZWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0cmljTG9nZ2VyIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHR5cGUgeyBCYXNpY01ldHJpYywgQmFzaWNNZXRyaWNSZXEsIEJhc2ljTWV0cmljUmVzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbG9nZ2VyJztcbmplc3QubW9jaygnLi4vLi4vbG9nZ2VyJywgKCkgPT4gKHtcbiAgbG9nZ2VyOiB7XG4gICAgaW5mbzogamVzdC5mbigpLFxuICB9LFxufSkpO1xuXG50eXBlIE15UmVxTWV0cmljID0gQmFzaWNNZXRyaWNSZXEgJiB7XG4gIHVzZXJJZDogc3RyaW5nO1xufTtcblxudHlwZSBNeVJlc01ldHJpYyA9IEJhc2ljTWV0cmljUmVzICYge1xuICBjb3VudDogbnVtYmVyO1xufTtcblxudHlwZSBNeU1ldHJpYyA9IEJhc2ljTWV0cmljICYge1xuICByZXE6IE15UmVxTWV0cmljO1xuICByZXM6IE15UmVzTWV0cmljO1xufTtcblxudHlwZSBNeUN1c3RvbU1ldHJpYyA9IHtcbiAgcHJvZHVjdFR5cGU6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbn07XG5cbmRlc2NyaWJlKCdNZXRyaWNMb2dnZXInLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRNZXRyaWMgPSB7XG4gICAgcmVxOiB7IHR5cGU6ICdteVR5cGUnLCB1c2VySWQ6ICdteS11c2VyLWlkJyB9LFxuICAgIHJlczogeyBpc1N1Y2Nlc3NmdWw6IHRydWUsIGVycm9yQ29kZTogJycsIGNvdW50OiAxMCB9LFxuICB9O1xuICBkZXNjcmliZSgnc2V0TWV0cmljKCkgLSBleHRlbmRlZCBtZXRyaWMgdHlwZScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHNldCBtZXRyaWMgcHJvcGVydHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRyaWNMb2dnZXIgPSBuZXcgTWV0cmljTG9nZ2VyPE15TWV0cmljPihkZWZhdWx0TWV0cmljLCB0cnVlLCBsb2dnZXIpO1xuXG4gICAgICBjb25zdCBleHBlY3RlZFVzZXJJZCA9ICdhbm90aGVyLXVzZXItaWQnO1xuICAgICAgY29uc3QgZXhwZWN0ZWRSZXN1bHQgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRNZXRyaWMsXG4gICAgICAgIHJlcTogeyAuLi5kZWZhdWx0TWV0cmljLnJlcSwgdXNlcklkOiBleHBlY3RlZFVzZXJJZCB9LFxuICAgICAgfTtcbiAgICAgIG1ldHJpY0xvZ2dlci5zZXRNZXRyaWMoJ3JlcS51c2VySWQnLCBleHBlY3RlZFVzZXJJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBtZXRyaWNMb2dnZXIuZ2V0TWV0cmljKCk7XG4gICAgICBleHBlY3QocmVzdWx0LnJlcS51c2VySWQpLnRvRXF1YWwoZXhwZWN0ZWRVc2VySWQpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZFJlc3VsdCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFsbG93IHRvIHNldCBtZXRyaWNzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0cmljTG9nZ2VyID0gbmV3IE1ldHJpY0xvZ2dlcjxNeU1ldHJpYz4oZGVmYXVsdE1ldHJpYywgdHJ1ZSwgbG9nZ2VyKTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRVc2VySWQgPSAnYW5vdGhlci11c2VyLWlkJztcbiAgICAgIGNvbnN0IG5ld0NvdW50ID0gMjA7XG4gICAgICBjb25zdCBleHBlY3RlZFJlc3VsdCA9IHtcbiAgICAgICAgcmVxOiB7IC4uLmRlZmF1bHRNZXRyaWMucmVxLCB1c2VySWQ6IGV4cGVjdGVkVXNlcklkIH0sXG4gICAgICAgIHJlczogeyAuLi5kZWZhdWx0TWV0cmljLnJlcywgY291bnQ6IG5ld0NvdW50IH0sXG4gICAgICB9O1xuICAgICAgbWV0cmljTG9nZ2VyLnNldE1ldHJpYygncmVxLnVzZXJJZCcsIGV4cGVjdGVkVXNlcklkKTtcbiAgICAgIG1ldHJpY0xvZ2dlci5zZXRNZXRyaWMoJ3Jlcy5jb3VudCcsIG5ld0NvdW50KTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG1ldHJpY0xvZ2dlci5nZXRNZXRyaWMoKTtcbiAgICAgIGV4cGVjdChyZXN1bHQucmVxLnVzZXJJZCkudG9FcXVhbChleHBlY3RlZFVzZXJJZCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkUmVzdWx0KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgdG8gc2V0IGN1c3RvbSBtdWx0aS1sYXllciBtZXRyaWNzJywgKCkgPT4ge1xuICAgICAgdHlwZSBNeU1ldHJpY05lc3RlZExheWVyID0gTXlNZXRyaWMgJiB7XG4gICAgICAgIHJlczogTXlSZXNNZXRyaWMgJiB7XG4gICAgICAgICAgY3VzdG9tT2JqZWN0OiB7XG4gICAgICAgICAgICBzb21lS2V5OiBzdHJpbmc7XG4gICAgICAgICAgICBzb21lVmFsdWU6IHN0cmluZztcbiAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGNvbnN0IG5lc3RlZERlZmF1bHRNZXRyaWMgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRNZXRyaWMsXG4gICAgICAgIHJlczoge1xuICAgICAgICAgIC4uLmRlZmF1bHRNZXRyaWMucmVzLFxuICAgICAgICAgIGN1c3RvbU9iamVjdDoge1xuICAgICAgICAgICAgc29tZUtleTogJ3NvbWUta2V5JyxcbiAgICAgICAgICAgIHNvbWVWYWx1ZTogJ3NvbWUtdmFsdWUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgbWV0cmljTG9nZ2VyID0gbmV3IE1ldHJpY0xvZ2dlcjxNeU1ldHJpY05lc3RlZExheWVyPihuZXN0ZWREZWZhdWx0TWV0cmljLCB0cnVlLCBsb2dnZXIpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRTb21lS2V5ID0gJ25ldy1rZXknO1xuICAgICAgY29uc3QgZXhwZWN0ZWRTb21lVmFsdWUgPSAnbmV3LXZhbHVlJztcbiAgICAgIGNvbnN0IGV4cGVjdGVkUmVzdWx0ID0ge1xuICAgICAgICAuLi5uZXN0ZWREZWZhdWx0TWV0cmljLFxuICAgICAgICByZXM6IHtcbiAgICAgICAgICAuLi5kZWZhdWx0TWV0cmljLnJlcyxcbiAgICAgICAgICBjdXN0b21PYmplY3Q6IHtcbiAgICAgICAgICAgIHNvbWVLZXk6IGV4cGVjdGVkU29tZUtleSxcbiAgICAgICAgICAgIHNvbWVWYWx1ZTogZXhwZWN0ZWRTb21lVmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBtZXRyaWNMb2dnZXIuc2V0TWV0cmljKCdyZXMuY3VzdG9tT2JqZWN0LnNvbWVLZXknLCBleHBlY3RlZFNvbWVLZXkpO1xuICAgICAgbWV0cmljTG9nZ2VyLnNldE1ldHJpYygncmVzLmN1c3RvbU9iamVjdC5zb21lVmFsdWUnLCBleHBlY3RlZFNvbWVWYWx1ZSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBtZXRyaWNMb2dnZXIuZ2V0TWV0cmljKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkUmVzdWx0KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NldE1ldHJpYygpIC0gY3VzdG9tIG1ldHJpYyB0eXBlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgY3VzdG9tIG1ldHJpYycsICgpID0+IHtcbiAgICAgIGNvbnN0IG15RGVmYXVsdE1ldHJpYyA9IHtcbiAgICAgICAgcHJvZHVjdFR5cGU6ICdteVR5cGUnLFxuICAgICAgICBjb3VudDogMTAsXG4gICAgICB9O1xuICAgICAgY29uc3QgbWV0cmljTG9nZ2VyID0gbmV3IE1ldHJpY0xvZ2dlcjxNeUN1c3RvbU1ldHJpYz4obXlEZWZhdWx0TWV0cmljLCB0cnVlLCBsb2dnZXIpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRQcm9kdWN0VHlwZSA9ICdhbm90aGVyVHlwZSc7XG4gICAgICBjb25zdCBleHBlY3RlZENvdW50ID0gMTAwO1xuICAgICAgbWV0cmljTG9nZ2VyLnNldE1ldHJpYygncHJvZHVjdFR5cGUnLCBleHBlY3RlZFByb2R1Y3RUeXBlKTtcbiAgICAgIG1ldHJpY0xvZ2dlci5zZXRNZXRyaWMoJ2NvdW50JywgZXhwZWN0ZWRDb3VudCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBtZXRyaWNMb2dnZXIuZ2V0TWV0cmljKCk7XG4gICAgICBleHBlY3QocmVzdWx0LnByb2R1Y3RUeXBlKS50b0VxdWFsKGV4cGVjdGVkUHJvZHVjdFR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5jb3VudCkudG9FcXVhbChleHBlY3RlZENvdW50KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3N1Y2Nlc3MoKScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHNldCBzdWNjZXNzIHJlc3BvbnNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0cmljTG9nZ2VyID0gbmV3IE1ldHJpY0xvZ2dlcjxNeU1ldHJpYz4oZGVmYXVsdE1ldHJpYywgdHJ1ZSwgbG9nZ2VyKTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRVc2VySWQgPSAnYW5vdGhlci11c2VyLWlkJztcbiAgICAgIGNvbnN0IGV4cGVjdGVkUmVzdWx0ID0ge1xuICAgICAgICAuLi5kZWZhdWx0TWV0cmljLFxuICAgICAgICByZXE6IHsgLi4uZGVmYXVsdE1ldHJpYy5yZXEsIHVzZXJJZDogZXhwZWN0ZWRVc2VySWQsIGlzU3VjY2Vzc2Z1bDogdHJ1ZSwgZXJyb3JDb2RlOiAnJyB9LFxuICAgICAgfTtcbiAgICAgIG1ldHJpY0xvZ2dlci5zZXRNZXRyaWMoJ3JlcS51c2VySWQnLCBleHBlY3RlZFVzZXJJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBtZXRyaWNMb2dnZXIuZ2V0TWV0cmljKCk7XG4gICAgICBleHBlY3QocmVzdWx0LnJlcS51c2VySWQpLnRvRXF1YWwoZXhwZWN0ZWRVc2VySWQpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5yZXMuaXNTdWNjZXNzZnVsKS50b0VxdWFsKGV4cGVjdGVkUmVzdWx0LnJlcy5pc1N1Y2Nlc3NmdWwpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5yZXMuZXJyb3JDb2RlKS50b0VxdWFsKGV4cGVjdGVkUmVzdWx0LnJlcy5lcnJvckNvZGUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZXJyb3IoKScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHNldCBlcnJvciByZXNwb25zZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1ldHJpY0xvZ2dlciA9IG5ldyBNZXRyaWNMb2dnZXI8TXlNZXRyaWM+KGRlZmF1bHRNZXRyaWMsIHRydWUsIGxvZ2dlcik7XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkVXNlcklkID0gJ2Fub3RoZXItdXNlci1pZCc7XG4gICAgICBjb25zdCBleHBlY3RlZFJlc3VsdCA9IHtcbiAgICAgICAgcmVxOiB7IC4uLmRlZmF1bHRNZXRyaWMucmVxLCB1c2VySWQ6IGV4cGVjdGVkVXNlcklkIH0sXG4gICAgICAgIHJlczogeyAuLi5kZWZhdWx0TWV0cmljLnJlcywgaXNTdWNjZXNzZnVsOiBmYWxzZSwgZXJyb3JDb2RlOiAnc29tZS1lcnJvci1jb2RlJyB9LFxuICAgICAgfTtcbiAgICAgIG1ldHJpY0xvZ2dlci5lcnJvcignc29tZS1lcnJvci1jb2RlJyk7XG4gICAgICBtZXRyaWNMb2dnZXIuc2V0TWV0cmljKCdyZXMuaXNTdWNjZXNzZnVsJywgZmFsc2UpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gbWV0cmljTG9nZ2VyLmdldE1ldHJpYygpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5yZXEudXNlcklkKS50b0VxdWFsKGV4cGVjdGVkVXNlcklkKTtcbiAgICAgIGV4cGVjdChyZXN1bHQucmVzLmlzU3VjY2Vzc2Z1bCkudG9FcXVhbChleHBlY3RlZFJlc3VsdC5yZXMuaXNTdWNjZXNzZnVsKTtcbiAgICAgIGV4cGVjdChyZXN1bHQucmVzLmVycm9yQ29kZSkudG9FcXVhbChleHBlY3RlZFJlc3VsdC5yZXMuZXJyb3JDb2RlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJuYW1lcyI6WyJqZXN0IiwibW9jayIsImxvZ2dlciIsImluZm8iLCJmbiIsImRlc2NyaWJlIiwiZGVmYXVsdE1ldHJpYyIsInJlcSIsInR5cGUiLCJ1c2VySWQiLCJyZXMiLCJpc1N1Y2Nlc3NmdWwiLCJlcnJvckNvZGUiLCJjb3VudCIsIml0IiwibWV0cmljTG9nZ2VyIiwiTWV0cmljTG9nZ2VyIiwiZXhwZWN0ZWRVc2VySWQiLCJleHBlY3RlZFJlc3VsdCIsInNldE1ldHJpYyIsInJlc3VsdCIsImdldE1ldHJpYyIsImV4cGVjdCIsInRvRXF1YWwiLCJuZXdDb3VudCIsIm5lc3RlZERlZmF1bHRNZXRyaWMiLCJjdXN0b21PYmplY3QiLCJzb21lS2V5Iiwic29tZVZhbHVlIiwiZXhwZWN0ZWRTb21lS2V5IiwiZXhwZWN0ZWRTb21lVmFsdWUiLCJteURlZmF1bHRNZXRyaWMiLCJwcm9kdWN0VHlwZSIsImV4cGVjdGVkUHJvZHVjdFR5cGUiLCJleHBlY3RlZENvdW50IiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7cUJBQTZCO3NCQUVOOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUN2QkEsS0FBS0MsSUFBSSxDQUFDLGdCQUFnQjtXQUFPO1FBQy9CQyxRQUFRO1lBQ05DLE1BQU1ILEtBQUtJLEVBQUU7UUFDZjtJQUNGOztBQW9CQUMsU0FBUyxnQkFBZ0IsV0FBTTtJQUM3QixJQUFNQyxnQkFBZ0I7UUFDcEJDLEtBQUs7WUFBRUMsTUFBTTtZQUFVQyxRQUFRO1FBQWE7UUFDNUNDLEtBQUs7WUFBRUMsY0FBYyxJQUFJO1lBQUVDLFdBQVc7WUFBSUMsT0FBTztRQUFHO0lBQ3REO0lBQ0FSLFNBQVMsc0NBQXNDLFdBQU07UUFDbkRTLEdBQUcsOEJBQThCLFdBQU07WUFDckMs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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import winston from 'winston';
|
|
2
|
+
export declare class MetricLogger<T> {
|
|
3
|
+
private readonly defaultMetric;
|
|
4
|
+
private _logger;
|
|
5
|
+
private _metric;
|
|
6
|
+
private _isTest;
|
|
7
|
+
constructor(defaultMetric?: T, _isTest?: boolean, suppliedLogger?: winston.Logger);
|
|
8
|
+
getMetric(): T;
|
|
9
|
+
/**
|
|
10
|
+
* Trigger to send log message over the supplied logger object
|
|
11
|
+
* @param metric
|
|
12
|
+
* @param stringifyMetric
|
|
13
|
+
*/
|
|
14
|
+
sendMetric(metric: T, stringifyMetric?: boolean): void;
|
|
15
|
+
/**
|
|
16
|
+
* Dynamically set the metric, support the dot notation e.g. `setMetric('res.isSuccess', true)`
|
|
17
|
+
* @param key
|
|
18
|
+
* @param value
|
|
19
|
+
*/
|
|
20
|
+
setMetric(key: string, value: unknown): void;
|
|
21
|
+
/**
|
|
22
|
+
* Capture the success
|
|
23
|
+
* @param cachedResponse
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
success(): void;
|
|
27
|
+
/**
|
|
28
|
+
* A handy function to capture the error
|
|
29
|
+
* @param errorCode
|
|
30
|
+
* @param errorField
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
error(errorCode?: string, errorField?: string): void;
|
|
34
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "MetricLogger", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return MetricLogger;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _logger = require("../logger");
|
|
12
|
+
function _classCallCheck(instance, Constructor) {
|
|
13
|
+
if (!(instance instanceof Constructor)) {
|
|
14
|
+
throw new TypeError("Cannot call a class as a function");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
var _typeof = function(obj) {
|
|
18
|
+
"@swc/helpers - typeof";
|
|
19
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
20
|
+
};
|
|
21
|
+
var MetricLogger = /*#__PURE__*/ function() {
|
|
22
|
+
"use strict";
|
|
23
|
+
function MetricLogger() {
|
|
24
|
+
var defaultMetric = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _isTest = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false, suppliedLogger = arguments.length > 2 ? arguments[2] : void 0;
|
|
25
|
+
_classCallCheck(this, MetricLogger);
|
|
26
|
+
this.defaultMetric = defaultMetric;
|
|
27
|
+
this._metric = defaultMetric;
|
|
28
|
+
this._isTest = _isTest;
|
|
29
|
+
this._logger = suppliedLogger || _logger.logger;
|
|
30
|
+
}
|
|
31
|
+
var _proto = MetricLogger.prototype;
|
|
32
|
+
_proto.getMetric = function getMetric() {
|
|
33
|
+
return this._metric;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Trigger to send log message over the supplied logger object
|
|
37
|
+
* @param metric
|
|
38
|
+
* @param stringifyMetric
|
|
39
|
+
*/ _proto.sendMetric = function sendMetric(metric) {
|
|
40
|
+
var stringifyMetric = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
41
|
+
if (!this._isTest) {
|
|
42
|
+
var metricToSend = stringifyMetric ? JSON.stringify(metric) : metric;
|
|
43
|
+
this._logger.info(metricToSend);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Dynamically set the metric, support the dot notation e.g. `setMetric('res.isSuccess', true)`
|
|
48
|
+
* @param key
|
|
49
|
+
* @param value
|
|
50
|
+
*/ _proto.setMetric = function setMetric(key, value) {
|
|
51
|
+
var keys = key.split(".");
|
|
52
|
+
var parentObject = this._metric;
|
|
53
|
+
for(var i = 0; i < keys.length; i++){
|
|
54
|
+
var leafNode = i === keys.length - 1;
|
|
55
|
+
var objectExists = _typeof(parentObject[keys[i]]) !== undefined;
|
|
56
|
+
// If not a leaf node and the object does not exist, set parent object so we can keep traversing through themn
|
|
57
|
+
if (objectExists && !leafNode) {
|
|
58
|
+
parentObject = parentObject[keys[i]];
|
|
59
|
+
}
|
|
60
|
+
if (leafNode) {
|
|
61
|
+
parentObject[keys[i]] = value;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Capture the success
|
|
68
|
+
* @param cachedResponse
|
|
69
|
+
* @returns
|
|
70
|
+
*/ _proto.success = function success() {
|
|
71
|
+
return this.sendMetric(this.getMetric());
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* A handy function to capture the error
|
|
75
|
+
* @param errorCode
|
|
76
|
+
* @param errorField
|
|
77
|
+
* @returns
|
|
78
|
+
*/ _proto.error = function error() {
|
|
79
|
+
var errorCode = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", errorField = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "res.errorCode";
|
|
80
|
+
if (errorField) {
|
|
81
|
+
this.setMetric(errorField, errorCode);
|
|
82
|
+
}
|
|
83
|
+
return this.sendMetric(this.getMetric());
|
|
84
|
+
};
|
|
85
|
+
return MetricLogger;
|
|
86
|
+
}();
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9NZXRyaWNMb2dnZXIvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9sb2dnZXInO1xuXG5leHBvcnQgY2xhc3MgTWV0cmljTG9nZ2VyPFQ+IHtcbiAgcHJpdmF0ZSBfbG9nZ2VyOiB3aW5zdG9uLkxvZ2dlcjtcbiAgcHJpdmF0ZSBfbWV0cmljOiBUO1xuICBwcml2YXRlIF9pc1Rlc3Q6IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1ldHJpYzogVCA9IHt9IGFzIFQsIF9pc1Rlc3QgPSBmYWxzZSwgc3VwcGxpZWRMb2dnZXI/OiB3aW5zdG9uLkxvZ2dlcikge1xuICAgIHRoaXMuX21ldHJpYyA9IGRlZmF1bHRNZXRyaWM7XG4gICAgdGhpcy5faXNUZXN0ID0gX2lzVGVzdDtcbiAgICB0aGlzLl9sb2dnZXIgPSBzdXBwbGllZExvZ2dlciB8fCBsb2dnZXI7XG4gIH1cblxuICBnZXRNZXRyaWMoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX21ldHJpYztcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHRvIHNlbmQgbG9nIG1lc3NhZ2Ugb3ZlciB0aGUgc3VwcGxpZWQgbG9nZ2VyIG9iamVjdFxuICAgKiBAcGFyYW0gbWV0cmljXG4gICAqIEBwYXJhbSBzdHJpbmdpZnlNZXRyaWNcbiAgICovXG4gIHNlbmRNZXRyaWMobWV0cmljOiBULCBzdHJpbmdpZnlNZXRyaWMgPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc1Rlc3QpIHtcbiAgICAgIGNvbnN0IG1ldHJpY1RvU2VuZCA9IHN0cmluZ2lmeU1ldHJpYyA/IEpTT04uc3RyaW5naWZ5KG1ldHJpYykgOiBtZXRyaWM7XG4gICAgICB0aGlzLl9sb2dnZXIuaW5mbyhtZXRyaWNUb1NlbmQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEeW5hbWljYWxseSBzZXQgdGhlIG1ldHJpYywgc3VwcG9ydCB0aGUgZG90IG5vdGF0aW9uIGUuZy4gYHNldE1ldHJpYygncmVzLmlzU3VjY2VzcycsIHRydWUpYFxuICAgKiBAcGFyYW0ga2V5XG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgc2V0TWV0cmljKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICBsZXQgcGFyZW50T2JqZWN0ID0gdGhpcy5fbWV0cmljO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbGVhZk5vZGUgPSBpID09PSBrZXlzLmxlbmd0aCAtIDE7XG4gICAgICBjb25zdCBvYmplY3RFeGlzdHMgPSB0eXBlb2YgcGFyZW50T2JqZWN0W2tleXNbaV1dICE9PSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIElmIG5vdCBhIGxlYWYgbm9kZSBhbmQgdGhlIG9iamVjdCBkb2VzIG5vdCBleGlzdCwgc2V0IHBhcmVudCBvYmplY3Qgc28gd2UgY2FuIGtlZXAgdHJhdmVyc2luZyB0aHJvdWdoIHRoZW1uXG4gICAgICBpZiAob2JqZWN0RXhpc3RzICYmICFsZWFmTm9kZSkge1xuICAgICAgICBwYXJlbnRPYmplY3QgPSBwYXJlbnRPYmplY3Rba2V5c1tpXV07XG4gICAgICB9XG5cbiAgICAgIGlmIChsZWFmTm9kZSkge1xuICAgICAgICBwYXJlbnRPYmplY3Rba2V5c1tpXV0gPSB2YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhcHR1cmUgdGhlIHN1Y2Nlc3NcbiAgICogQHBhcmFtIGNhY2hlZFJlc3BvbnNlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdWNjZXNzKCkge1xuICAgIHJldHVybiB0aGlzLnNlbmRNZXRyaWModGhpcy5nZXRNZXRyaWMoKSk7XG4gIH1cblxuICAvKipcbiAgICogQSBoYW5keSBmdW5jdGlvbiB0byBjYXB0dXJlIHRoZSBlcnJvclxuICAgKiBAcGFyYW0gZXJyb3JDb2RlXG4gICAqIEBwYXJhbSBlcnJvckZpZWxkXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBlcnJvcihlcnJvckNvZGU6IHN0cmluZyA9ICcnLCBlcnJvckZpZWxkOiBzdHJpbmcgPSAncmVzLmVycm9yQ29kZScpIHtcbiAgICBpZiAoZXJyb3JGaWVsZCkge1xuICAgICAgdGhpcy5zZXRNZXRyaWMoZXJyb3JGaWVsZCwgZXJyb3JDb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VuZE1ldHJpYyh0aGlzLmdldE1ldHJpYygpKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIk1ldHJpY0xvZ2dlciIsImRlZmF1bHRNZXRyaWMiLCJfaXNUZXN0Iiwic3VwcGxpZWRMb2dnZXIiLCJfbWV0cmljIiwiX2xvZ2dlciIsImxvZ2dlciIsImdldE1ldHJpYyIsInNlbmRNZXRyaWMiLCJtZXRyaWMiLCJzdHJpbmdpZnlNZXRyaWMiLCJtZXRyaWNUb1NlbmQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5mbyIsInNldE1ldHJpYyIsImtleSIsInZhbHVlIiwia2V5cyIsInNwbGl0IiwicGFyZW50T2JqZWN0IiwiaSIsImxlbmd0aCIsImxlYWZOb2RlIiwib2JqZWN0RXhpc3RzIiwidW5kZWZpbmVkIiwic3VjY2VzcyIsImVycm9yIiwiZXJyb3JDb2RlIiwiZXJyb3JGaWVsZCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFHYUE7OztlQUFBQTs7O3NCQUZVOzs7Ozs7Ozs7O0FBRWhCLElBQUEsQUFBTUEsNkJBSFYsQUFHSTs7YUFBTUE7WUFJa0JDLGlGQUFtQixDQUFDLEdBQVFDLFVBQUFBLGlFQUFVLEtBQUssRUFBRUM7OEJBSi9ESDs2QkFJa0JDO1FBQzNCLElBQUksQ0FBQ0csT0FBTyxHQUFHSDtRQUNmLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0csT0FBTyxHQUFHRixrQkFBa0JHLGNBQU07O2lCQVA5Qk47SUFVWE8sT0FBQUEsU0FFQyxHQUZEQSxTQUFBQSxZQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQTs7OztHQUlDLEdBQ0RJLE9BQUFBLFVBS0MsR0FMREEsU0FBQUEsV0FBV0MsTUFBUyxFQUFnQztZQUE5QkMsa0JBQUFBLGlFQUFrQixJQUFJO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUNSLE9BQU8sRUFBRTtZQUNqQixJQUFNUyxlQUFlRCxrQkFBa0JFLEtBQUtDLFNBQVMsQ0FBQ0osVUFBVUEsTUFBTTtZQUN0RSxJQUFJLENBQUNKLE9BQU8sQ0FBQ1MsSUFBSSxDQUFDSDtRQUNwQixDQUFDO0lBQ0g7SUFFQTs7OztHQUlDLEdBQ0RJLE9BQUFBLFNBaUJDLEdBakJEQSxTQUFBQSxVQUFVQyxHQUFXLEVBQUVDLEtBQWMsRUFBRTtRQUNyQyxJQUFNQyxPQUFPRixJQUFJRyxLQUFLLENBQUM7UUFDdkIsSUFBSUMsZUFBZSxJQUFJLENBQUNoQixPQUFPO1FBQy9CLElBQUssSUFBSWlCLElBQUksR0FBR0EsSUFBSUgsS0FBS0ksTUFBTSxFQUFFRCxJQUFLO1lBQ3BDLElBQU1FLFdBQVdGLE1BQU1ILEtBQUtJLE1BQU0sR0FBRztZQUNyQyxJQUFNRSxlQUFlLFFBQU9KLFlBQVksQ0FBQ0YsSUFBSSxDQUFDRyxFQUFFLENBQUMsTUFBS0k7WUFFdEQsOEdBQThHO1lBQzlHLElBQUlELGdCQUFnQixDQUFDRCxVQUFVO2dCQUM3QkgsZUFBZUEsWUFBWSxDQUFDRixJQUFJLENBQUNHLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1lBRUQsSUFBSUUsVUFBVTtnQkFDWkgsWUFBWSxDQUFDRixJQUFJLENBQUNHLEVBQUUsQ0FBQyxHQUFHSjtnQkFDeEIsS0FBTTtZQUNSLENBQUM7UUFDSDtJQUNGO0lBRUE7Ozs7R0FJQyxHQUNEUyxPQUFBQSxPQUVDLEdBRkRBLFNBQUFBLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ2xCLFVBQVUsQ0FBQyxJQUFJLENBQUNELFNBQVM7SUFDdkM7SUFFQTs7Ozs7R0FLQyxHQUNEb0IsT0FBQUEsS0FLQyxHQUxEQSxTQUFBQSxRQUFvRTtZQUE5REMsWUFBQUEsaUVBQW9CLEVBQUUsRUFBRUMsYUFBQUEsaUVBQXFCLGVBQWU7UUFDaEUsSUFBSUEsWUFBWTtZQUNkLElBQUksQ0FBQ2QsU0FBUyxDQUFDYyxZQUFZRDtRQUM3QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDRCxTQUFTO0lBQ3ZDO1dBdEVXUCJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type BasicRecord = Record<string, unknown>;
|
|
2
|
+
export type BasicMetricReq = BasicRecord & {
|
|
3
|
+
type: string;
|
|
4
|
+
};
|
|
5
|
+
export type BasicMetricRes = BasicRecord & {
|
|
6
|
+
isSuccessful: boolean;
|
|
7
|
+
errorCode: string;
|
|
8
|
+
};
|
|
9
|
+
export type BasicMetric = {
|
|
10
|
+
req: BasicMetricReq;
|
|
11
|
+
res: BasicMetricRes;
|
|
12
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ import { logger } from './logger';
|
|
|
3
3
|
import { getLoggerObject } from './logger/util';
|
|
4
4
|
import { getLogParams } from './params';
|
|
5
5
|
import { flushAll, ensureFlushAll, ensureFlushAllCallback } from './util';
|
|
6
|
-
|
|
6
|
+
import { MetricLogger } from './MetricLogger';
|
|
7
|
+
export { consoleLogger, logger, getLoggerObject, getLogParams, flushAll, ensureFlushAll, ensureFlushAllCallback, MetricLogger, };
|
package/dist/index.js
CHANGED
|
@@ -29,6 +29,9 @@ _export(exports, {
|
|
|
29
29
|
},
|
|
30
30
|
ensureFlushAllCallback: function() {
|
|
31
31
|
return _util1.ensureFlushAllCallback;
|
|
32
|
+
},
|
|
33
|
+
MetricLogger: function() {
|
|
34
|
+
return _metricLogger.MetricLogger;
|
|
32
35
|
}
|
|
33
36
|
});
|
|
34
37
|
var _console = require("./console");
|
|
@@ -36,5 +39,6 @@ var _logger = require("./logger");
|
|
|
36
39
|
var _util = require("./logger/util");
|
|
37
40
|
var _params = require("./params");
|
|
38
41
|
var _util1 = require("./util");
|
|
42
|
+
var _metricLogger = require("./MetricLogger");
|
|
39
43
|
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zb2xlTG9nZ2VyIH0gZnJvbSAnLi9jb25zb2xlJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IGdldExvZ2dlck9iamVjdCB9IGZyb20gJy4vbG9nZ2VyL3V0aWwnO1xuaW1wb3J0IHsgZ2V0TG9nUGFyYW1zIH0gZnJvbSAnLi9wYXJhbXMnO1xuaW1wb3J0IHsgZmx1c2hBbGwsIGVuc3VyZUZsdXNoQWxsLCBlbnN1cmVGbHVzaEFsbENhbGxiYWNrIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IE1ldHJpY0xvZ2dlciB9IGZyb20gJy4vTWV0cmljTG9nZ2VyJztcblxuLy8gRXhwb3J0IGFsbCB0aGUgZnVuY3Rpb25zXG5leHBvcnQge1xuICBjb25zb2xlTG9nZ2VyLFxuICBsb2dnZXIsXG4gIGdldExvZ2dlck9iamVjdCxcbiAgZ2V0TG9nUGFyYW1zLFxuICBmbHVzaEFsbCxcbiAgZW5zdXJlRmx1c2hBbGwsXG4gIGVuc3VyZUZsdXNoQWxsQ2FsbGJhY2ssXG4gIE1ldHJpY0xvZ2dlcixcbn07XG4iXSwibmFtZXMiOlsiY29uc29sZUxvZ2dlciIsImxvZ2dlciIsImdldExvZ2dlck9iamVjdCIsImdldExvZ1BhcmFtcyIsImZsdXNoQWxsIiwiZW5zdXJlRmx1c2hBbGwiLCJlbnN1cmVGbHVzaEFsbENhbGxiYWNrIiwiTWV0cmljTG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQVNFQSxhQUFhO2VBQWJBLHNCQUFhOztJQUNiQyxNQUFNO2VBQU5BLGNBQU07O0lBQ05DLGVBQWU7ZUFBZkEscUJBQWU7O0lBQ2ZDLFlBQVk7ZUFBWkEsb0JBQVk7O0lBQ1pDLFFBQVE7ZUFBUkEsZUFBUTs7SUFDUkMsY0FBYztlQUFkQSxxQkFBYzs7SUFDZEMsc0JBQXNCO2VBQXRCQSw2QkFBc0I7O0lBQ3RCQyxZQUFZO2VBQVpBLDBCQUFZOzs7dUJBaEJnQjtzQkFDUDtvQkFDUztzQkFDSDtxQkFDb0M7NEJBQ3BDIn0=
|
|
@@ -245,4 +245,4 @@ var LogDNATransport = /*#__PURE__*/ function(Transport) {
|
|
|
245
245
|
return LogDNATransport;
|
|
246
246
|
}(_winstonTransport.default);
|
|
247
247
|
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc3BvcnRzL2xvZ2RuYVdpbnN0b24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRyYW5zcG9ydCBmcm9tICd3aW5zdG9uLXRyYW5zcG9ydCc7XG5pbXBvcnQgeyBMb2dnZXIsIGNyZWF0ZUxvZ2dlciB9IGZyb20gJ0Bsb2dkbmEvbG9nZ2VyJztcbi8vY29uc3QgcGtnID0gcmVxdWlyZSgnLi9wYWNrYWdlLmpzb24nKTtcblxuLyoqXG4gKiBTdXBwb3J0IGZvciBXaW5zdG9uIFRyYW5zcG9ydFxuICogRnVuY3Rpb25hbGl0eTpcbiAqICBUaGlzIGNvZGUgaXMgdG8gZXh0ZW5kIFdpbnN0b24gb2JqZWN0IGFuZCB0cmFuc3BvcnQgbG9ncyB0byBMb2dETkEgYXV0b21hdGljYWxseS5cbiAqICBXZSBuZWVkIHRvIGJ1aWxkIGEgY3VzdG9tIHRyYW5zcG9ydCBiZWNhdXNlIHRoZSBvcmlnaW5hbCBjb2RlIGRvZXNuJ3Qgc3VwcG9ydCBMYW1iZGEgZW52aXJvbm1lbnQuIFNlZSBiZWxvd1xuICpcbiAqIE5vdGU6XG4gKiAgVGhpcyBjb2RlIGlzIGNsb25lZCBmcm9tIHRoZSBvZmZpY2lhbCBMb2dETkEgV2luc3RvbiB0cmFuc3BvcnQgKGh0dHBzOi8vZ2l0aHViLmNvbS9sb2dkbmEvbG9nZG5hLXdpbnN0b24pXG4gKiAgVGhpcyBtb2R1bGUgaGFzIGxpbWl0ZWQgYW5kIGRvZXNuJ3QgZnVsbHkgc3VwcG9ydCBMYW1iZGEgZW52aXJvbm1lbnQgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhlIGxvZ2dlciBvYmplY3QgaXNcbiAqICBjcmVhdGVkIGluc2lkZSBvZiB0aGUgdHJhbnNwb3J0LiBUaGlzIG1lYW5zIHRoYXQgb3VyIGVuc3VyZUZsdXNoQWxsKCkgZG9lc24ndCBoYXZlIGEgY2hhbmNlIHRvIGNsZWFyIGl0cyBidWZmZXJcbiAqXG4gKiAgU29tZW9uZSByZXBvcnRlZCB0aGUgaXNzdWUgaGVyZSAtIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2dkbmEvbG9nZG5hLXdpbnN0b24vaXNzdWVzLzM4XG4gKlxuICogRXhhbXBsZSBvZiB0cmFuc3BvcnQgKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5zdG9uanMvd2luc3Rvbi10cmFuc3BvcnQpXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dETkFUcmFuc3BvcnQgZXh0ZW5kcyBUcmFuc3BvcnQge1xuICBsb2dnZXI6IExvZ2dlcjtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogYW55LCBzdXBwbGllZExvZ2RuYUNsaWVudD86IExvZ2dlcikge1xuICAgIGNvbnN0IHsgbGV2ZWxzLCBtYXhMZXZlbCwga2V5LCAuLi5vcHRzIH0gPSBvcHRpb25zO1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdHMsXG4gICAgICBsZXZlbHMsXG4gICAgICBsZXZlbDogbWF4TGV2ZWwsXG4gICAgfSk7XG5cbiAgICBsZXQgY3VzdG9tX2xldmVscyA9IGxldmVscztcbiAgICBpZiAoIWN1c3RvbV9sZXZlbHMpIHtcbiAgICAgIC8vIFBlciB0aGUgd2luc3RvbiBkb2NzLCB0aGVpciAnbnBtJyBsZXZlbHMgd2lsbCBiZSB1c2VkLCBhbmQgdGhvc2UgbXVzdCBiZVxuICAgICAgLy8gc2V0IHVwIGFzIGN1c3RvbSBsZXZlbHMgaW4gTG9nRE5BLlxuICAgICAgLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2luc3RvbmpzL3dpbnN0b24jbG9nZ2luZy1sZXZlbHNcbiAgICAgIGN1c3RvbV9sZXZlbHMgPSB7XG4gICAgICAgIGVycm9yOiAwLFxuICAgICAgICB3YXJuOiAxLFxuICAgICAgICBpbmZvOiAyLFxuICAgICAgICBodHRwOiAzLFxuICAgICAgICB2ZXJib3NlOiA0LFxuICAgICAgICBkZWJ1ZzogNSxcbiAgICAgICAgc2lsbHk6IDYsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFVzaW5nIHRoZSBzdXBwbGllZCBsb2dnZXIgb3IgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEBsb2dkbmEvbG9nZ2VyXG4gICAgdGhpcy5sb2dnZXIgPVxuICAgICAgc3VwcGxpZWRMb2dkbmFDbGllbnQgPz9cbiAgICAgIGNyZWF0ZUxvZ2dlcihrZXksIHtcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgbGV2ZWxzOiBPYmplY3Qua2V5cyhjdXN0b21fbGV2ZWxzKSxcbiAgICAgICAgVXNlckFnZW50OiAnYnliLWxvZ2dlci1hZGFwdGVyJywgLy9gJHtwa2cubmFtZX0vJHtwa2cudmVyc2lvbn1gLFxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2luc3RvbiBUcmFuc3BvcnQgd2lsbCBjYWxsIHRoaXMgbG9nIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBpbmZvXG4gICAqIEBwYXJhbSBjYWxsYmFja1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgbG9nKGluZm86IGFueSwgY2FsbGJhY2s6IChhOiBhbnksIGI6IGFueSkgPT4gdm9pZCkge1xuICAgIGNvbnN0IGxldmVsID0gaW5mby5sZXZlbDtcblxuICAgIGlmIChpbmZvLmVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGluZm8uZXJyb3IgPSBpbmZvLmVycm9yLnN0YWNrIHx8IGluZm8uZXJyb3IudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoIWluZm8ubWVzc2FnZSkge1xuICAgICAgLy8gU2VuZCB0aGUgaW5jb21pbmcgb2JqZWN0IHBheWxvYWQgYXMgdGhlIG1lc3NhZ2VcbiAgICAgIHRoaXMubG9nZ2VyLmxvZyhpbmZvLCBsZXZlbCk7XG4gICAgICBjYWxsYmFjayhudWxsLCB0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICBjb25zdCB7IG1lc3NhZ2UsIGluZGV4TWV0YSwgdGltZXN0YW1wLCAuLi5tZXRhIH0gPSBpbmZvO1xuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICBsZXZlbCxcbiAgICAgIGluZGV4TWV0YSxcbiAgICAgIHRpbWVzdGFtcCxcbiAgICAgIG1ldGEsXG4gICAgfTtcblxuICAgIHRoaXMubG9nZ2VyLmxvZyhtZXNzYWdlLCBvcHRzKTtcbiAgICBjYWxsYmFjayhudWxsLCB0cnVlKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkxvZ0ROQVRyYW5zcG9ydCIsIm9wdGlvbnMiLCJzdXBwbGllZExvZ2RuYUNsaWVudCIsImxldmVscyIsIm1heExldmVsIiwia2V5Iiwib3B0cyIsImxldmVsIiwiY3VzdG9tX2xldmVscyIsImVycm9yIiwid2FybiIsImluZm8iLCJodHRwIiwidmVyYm9zZSIsImRlYnVnIiwic2lsbHkiLCJsb2dnZXIiLCJjcmVhdGVMb2dnZXIiLCJPYmplY3QiLCJrZXlzIiwiVXNlckFnZW50IiwibG9nIiwiY2FsbGJhY2siLCJFcnJvciIsInN0YWNrIiwidG9TdHJpbmciLCJtZXNzYWdlIiwiaW5kZXhNZXRhIiwidGltZXN0YW1wIiwibWV0YSIsIlRyYW5zcG9ydCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFtQmFBOzs7ZUFBQUE7OztxRUFuQlM7c0JBQ2U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQjlCLElBQUEsQUFBTUEsZ0NBQU47O2NBQU1BOzhCQUFBQTthQUFBQSxnQkFFQ0MsT0FBWSxFQUFFQyxvQkFBNkI7OEJBRjVDRjs7UUFHVCxJQUFRRyxTQUFtQ0YsUUFBbkNFLFFBQVFDLFdBQTJCSCxRQUEzQkcsVUFBVUMsTUFBaUJKLFFBQWpCSSxLQUFRQyxnQ0FBU0w7WUFBbkNFO1lBQVFDO1lBQVVDOztrQ0FDcEIscUNBQ0RDO1lBQ0hILFFBQUFBO1lBQ0FJLE9BQU9IOztRQUdULElBQUlJLGdCQUFnQkw7UUFDcEIsSUFBSSxDQUFDSyxlQUFlO1lBQ2xCLDJFQUEyRTtZQUMzRSxxQ0FBcUM7WUFDckMsMkRBQTJEO1lBQzNEQSxnQkFBZ0I7Z0JBQ2RDLE9BQU87Z0JBQ1BDLE1BQU07Z0JBQ05DLE1BQU07Z0JBQ05DLE1BQU07Z0JBQ05DLFNBQVM7Z0JBQ1RDLE9BQU87Z0JBQ1BDLE9BQU87WUFDVDtRQUNGLENBQUM7UUFFRCxvRUFBb0U7UUFDcEUsTUFBS0MsTUFBTSxHQUNUZCxpQ0FBQUEsa0NBQUFBLHVCQUNBZSxJQUFBQSxvQkFBWSxFQUFDWixLQUFLLHFDQUNiQztZQUNISCxRQUFRZSxPQUFPQyxJQUFJLENBQUNYO1lBQ3BCWSxXQUFXO1dBQ1g7OztpQkFqQ0twQjtJQW9DWDs7Ozs7R0FLQyxHQUNEcUIsT0FBQUEsR0F5QkMsR0F6QkRBLFNBQUFBLElBQUlWLElBQVMsRUFBRVcsUUFBa0MsRUFBRTtRQUNqRCxJQUFNZixRQUFRSSxLQUFLSixLQUFLO1FBRXhCLElBQUlJLEFBQVUsWUFBVkEsS0FBS0YsS0FBSyxFQUFZYyxRQUFPO1lBQy9CWixLQUFLRixLQUFLLEdBQUdFLEtBQUtGLEtBQUssQ0FBQ2UsS0FBSyxJQUFJYixLQUFLRixLQUFLLENBQUNnQixRQUFRO1FBQ3RELENBQUM7UUFFRCxJQUFJLENBQUNkLEtBQUtlLE9BQU8sRUFBRTtZQUNqQixrREFBa0Q7WUFDbEQsSUFBSSxDQUFDVixNQUFNLENBQUNLLEdBQUcsQ0FBQ1YsTUFBTUo7WUFDdEJlLFNBQVMsSUFBSSxFQUFFLElBQUk7WUFDbkI7UUFDRixDQUFDO1FBRUQsMENBQTBDO1FBQzFDLElBQVFJLFVBQTJDZixLQUEzQ2UsU0FBU0MsWUFBa0NoQixLQUFsQ2dCLFdBQVdDLFlBQXVCakIsS0FBdkJpQixXQUFjQyxnQ0FBU2xCO1lBQTNDZTtZQUFTQztZQUFXQzs7UUFDNUIsSUFBTXRCLE9BQU87WUFDWEMsT0FBQUE7WUFDQW9CLFdBQUFBO1lBQ0FDLFdBQUFBO1lBQ0FDLE1BQUFBO1FBQ0Y7UUFFQSxJQUFJLENBQUNiLE1BQU0sQ0FBQ0ssR0FBRyxDQUFDSyxTQUFTcEI7UUFDekJnQixTQUFTLElBQUksRUFBRSxJQUFJO0lBQ3JCO1dBbkVXdEI7RUFBd0I4Qix5QkFBUyJ9
|
package/package.json
CHANGED