@squiz/component-logger-lib 1.32.1-alpha.22 → 1.32.1-alpha.26
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/.npm/_logs/{2023-04-28T06_34_24_877Z-debug-0.log → 2023-05-03T01_21_21_355Z-debug-0.log} +18 -18
- package/jest.integration.config.ts +15 -0
- package/lib/component-log-message.d.ts +1 -1
- package/lib/component-logger-config.d.ts +3 -3
- package/lib/component-logger.d.ts +1 -1
- package/lib/component-logger.integration.spec.d.ts +1 -0
- package/lib/component-logger.integration.spec.js +17 -0
- package/lib/component-logger.integration.spec.js.map +1 -0
- package/lib/component-logger.js +6 -5
- package/lib/component-logger.js.map +1 -1
- package/lib/component-logger.spec.js +211 -30
- package/lib/component-logger.spec.js.map +1 -1
- package/lib/getComponentLogger.d.ts +8 -0
- package/lib/getComponentLogger.js +43 -0
- package/lib/getComponentLogger.js.map +1 -0
- package/lib/getComponentLogger.spec.d.ts +1 -0
- package/lib/getComponentLogger.spec.js +28 -0
- package/lib/getComponentLogger.spec.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/package.json +5 -3
- package/src/component-log-message.ts +1 -1
- package/src/component-logger-config.ts +3 -3
- package/src/component-logger.integration.spec.ts +16 -0
- package/src/component-logger.spec.ts +246 -8
- package/src/component-logger.ts +8 -6
- package/src/getComponentLogger.spec.ts +31 -0
- package/src/getComponentLogger.ts +55 -0
- package/src/index.ts +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/.env.example +0 -4
package/.npm/_logs/{2023-04-28T06_34_24_877Z-debug-0.log → 2023-05-03T01_21_21_355Z-debug-0.log}
RENAMED
@@ -1,37 +1,37 @@
|
|
1
1
|
0 verbose cli /usr/local/bin/node /usr/local/bin/npm
|
2
2
|
1 info using npm@9.5.0
|
3
3
|
2 info using node@v18.15.0
|
4
|
-
3 timing npm:load:whichnode Completed in
|
5
|
-
4 timing config:load:defaults Completed in
|
6
|
-
5 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in
|
7
|
-
6 timing config:load:builtin Completed in
|
4
|
+
3 timing npm:load:whichnode Completed in 1ms
|
5
|
+
4 timing config:load:defaults Completed in 3ms
|
6
|
+
5 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in 0ms
|
7
|
+
6 timing config:load:builtin Completed in 0ms
|
8
8
|
7 timing config:load:cli Completed in 2ms
|
9
|
-
8 timing config:load:env Completed in
|
9
|
+
8 timing config:load:env Completed in 2ms
|
10
10
|
9 info found workspace root at /builds/developer-experience/cmp
|
11
11
|
10 timing config:load:file:/builds/developer-experience/cmp/.npmrc Completed in 0ms
|
12
12
|
11 timing config:load:project Completed in 20ms
|
13
|
-
12 timing config:load:file:/root/.npmrc Completed in
|
14
|
-
13 timing config:load:user Completed in
|
15
|
-
14 timing config:load:file:/usr/local/etc/npmrc Completed in
|
16
|
-
15 timing config:load:global Completed in
|
13
|
+
12 timing config:load:file:/root/.npmrc Completed in 1ms
|
14
|
+
13 timing config:load:user Completed in 1ms
|
15
|
+
14 timing config:load:file:/usr/local/etc/npmrc Completed in 1ms
|
16
|
+
15 timing config:load:global Completed in 1ms
|
17
17
|
16 timing config:load:setEnvs Completed in 1ms
|
18
|
-
17 timing config:load Completed in
|
19
|
-
18 timing npm:load:configload Completed in
|
20
|
-
19 timing npm:load:mkdirpcache Completed in
|
21
|
-
20 timing npm:load:mkdirplogs Completed in
|
18
|
+
17 timing config:load Completed in 30ms
|
19
|
+
18 timing npm:load:configload Completed in 30ms
|
20
|
+
19 timing npm:load:mkdirpcache Completed in 0ms
|
21
|
+
20 timing npm:load:mkdirplogs Completed in 1ms
|
22
22
|
21 verbose title npm run compile
|
23
23
|
22 verbose argv "run" "compile" "--"
|
24
24
|
23 timing npm:load:setTitle Completed in 1ms
|
25
|
-
24 timing config:load:flatten Completed in
|
25
|
+
24 timing config:load:flatten Completed in 5ms
|
26
26
|
25 timing npm:load:display Completed in 6ms
|
27
|
-
26 verbose logfile logs-max:10 dir:/builds/developer-experience/cmp/packages/component-logger-lib/.npm/_logs/2023-
|
28
|
-
27 verbose logfile /builds/developer-experience/cmp/packages/component-logger-lib/.npm/_logs/2023-
|
27
|
+
26 verbose logfile logs-max:10 dir:/builds/developer-experience/cmp/packages/component-logger-lib/.npm/_logs/2023-05-03T01_21_21_355Z-
|
28
|
+
27 verbose logfile /builds/developer-experience/cmp/packages/component-logger-lib/.npm/_logs/2023-05-03T01_21_21_355Z-debug-0.log
|
29
29
|
28 timing npm:load:logFile Completed in 4ms
|
30
30
|
29 timing npm:load:timers Completed in 0ms
|
31
31
|
30 timing npm:load:configScope Completed in 0ms
|
32
32
|
31 timing npm:load Completed in 43ms
|
33
33
|
32 silly logfile done cleaning log files
|
34
|
-
33 timing command:run Completed in
|
34
|
+
33 timing command:run Completed in 4267ms
|
35
35
|
34 verbose exit 0
|
36
|
-
35 timing npm Completed in
|
36
|
+
35 timing npm Completed in 4327ms
|
37
37
|
36 info ok
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type { Config } from 'jest';
|
2
|
+
import { config as dotEnvConfig } from 'dotenv';
|
3
|
+
|
4
|
+
dotEnvConfig();
|
5
|
+
|
6
|
+
// Sync object
|
7
|
+
const config: Config = {
|
8
|
+
preset: 'ts-jest',
|
9
|
+
testTimeout: 60_000,
|
10
|
+
testEnvironment: 'node',
|
11
|
+
testRegex: '.*\\.integration\\.spec\\.ts$',
|
12
|
+
maxWorkers: 1,
|
13
|
+
};
|
14
|
+
|
15
|
+
export default config;
|
@@ -8,6 +8,6 @@ export declare class ComponentLogger {
|
|
8
8
|
info(message: string | any, traceId?: string): Promise<void>;
|
9
9
|
warn(message: string | any, traceId?: string): Promise<void>;
|
10
10
|
error(message: string | any, traceId?: string): Promise<void>;
|
11
|
-
append(level: ComponentLogLevel, message: string | any, traceId?: string): Promise<void>;
|
11
|
+
protected append(level: ComponentLogLevel, message: string | any, traceId?: string): Promise<void>;
|
12
12
|
flush(): Promise<void>;
|
13
13
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const dx_common_lib_1 = require("@squiz/dx-common-lib");
|
4
|
+
const _1 = require(".");
|
5
|
+
describe('ComponentLogger', () => {
|
6
|
+
it('should sending log messages', async () => {
|
7
|
+
const logger = await (0, _1.getComponentLogger)({
|
8
|
+
enabled: true,
|
9
|
+
tenantId: 'integration-test',
|
10
|
+
accessCredentials: (0, dx_common_lib_1.parseEnvVarForVar)('LOGGING_SERVICE_API_CREDENTIALS'),
|
11
|
+
tags: 'env:dev integration-test',
|
12
|
+
});
|
13
|
+
await logger.info('The quick brown fox', '123');
|
14
|
+
await logger.flush();
|
15
|
+
});
|
16
|
+
});
|
17
|
+
//# sourceMappingURL=component-logger.integration.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"component-logger.integration.spec.js","sourceRoot":"","sources":["../src/component-logger.integration.spec.ts"],"names":[],"mappings":";;AAAA,wDAAyD;AACzD,wBAAuC;AAEvC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAkB,EAAC;YACtC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,kBAAkB;YAC5B,iBAAiB,EAAE,IAAA,iCAAiB,EAAC,iCAAiC,CAAC;YACvE,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/component-logger.js
CHANGED
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.ComponentLogger = void 0;
|
7
7
|
const superagent_1 = __importDefault(require("superagent"));
|
8
|
+
const MESSAGE_BATCH_SIZE = 100;
|
8
9
|
class ComponentLogger {
|
9
10
|
constructor(config) {
|
10
11
|
this.config = config;
|
@@ -41,18 +42,18 @@ class ComponentLogger {
|
|
41
42
|
timestamp: new Date().toISOString(),
|
42
43
|
message: payload,
|
43
44
|
tags: this.config.tags,
|
44
|
-
|
45
|
+
traceid: traceId,
|
45
46
|
});
|
46
|
-
if (this.batch.length ==
|
47
|
+
if (this.batch.length == MESSAGE_BATCH_SIZE) {
|
47
48
|
await this.flush();
|
48
|
-
this.batch = [];
|
49
49
|
}
|
50
50
|
}
|
51
51
|
async flush() {
|
52
52
|
if (this.config.enabled && this.batch.length > 0) {
|
53
53
|
try {
|
54
|
-
const url = `${this.config.logUrl}/${this.config.tenantId}`;
|
55
|
-
await superagent_1.default.post(url).set('
|
54
|
+
const url = `${this.config.logUrl.replace(/\/+$/, '')}/${this.config.tenantId}`;
|
55
|
+
await superagent_1.default.post(url).set('x-api-key', this.config.key).send(this.batch);
|
56
|
+
this.batch = [];
|
56
57
|
}
|
57
58
|
catch (err) {
|
58
59
|
console.error(err);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"component-logger.js","sourceRoot":"","sources":["../src/component-logger.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AAIpC,MAAa,eAAe;IAG1B,YAAqB,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;QAF1C,UAAK,GAA+B,EAAE,CAAC;QAG7C,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC9C;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;aAChD;SACF;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,OAAgB;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB,EAAE,OAAgB;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB,EAAE,OAAgB;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,OAAgB;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;
|
1
|
+
{"version":3,"file":"component-logger.js","sourceRoot":"","sources":["../src/component-logger.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AAIpC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAa,eAAe;IAG1B,YAAqB,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;QAF1C,UAAK,GAA+B,EAAE,CAAC;QAG7C,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC9C;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;aAChD;SACF;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,OAAgB;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB,EAAE,OAAgB;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB,EAAE,OAAgB;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,OAAgB;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAES,KAAK,CAAC,MAAM,CAAC,KAAwB,EAAE,OAAqB,EAAE,OAAgB;QACtF,MAAM,OAAO,GAAG,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,kBAAkB,EAAE;YAC3C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAChD,IAAI;gBACF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAChF,MAAM,oBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9E,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;aACjB;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,MAAM,GAAG,CAAC;aACX;SACF;IACH,CAAC;CACF;AA9DD,0CA8DC"}
|
@@ -1,42 +1,223 @@
|
|
1
1
|
"use strict";
|
2
|
-
var
|
3
|
-
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
-
}
|
8
|
-
Object.defineProperty(o, k2, desc);
|
9
|
-
}) : (function(o, m, k, k2) {
|
10
|
-
if (k2 === undefined) k2 = k;
|
11
|
-
o[k2] = m[k];
|
12
|
-
}));
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
-
}) : function(o, v) {
|
16
|
-
o["default"] = v;
|
17
|
-
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
-
if (mod && mod.__esModule) return mod;
|
20
|
-
var result = {};
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
-
__setModuleDefault(result, mod);
|
23
|
-
return result;
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
24
4
|
};
|
25
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
6
|
const component_logger_1 = require("./component-logger");
|
27
|
-
const
|
7
|
+
const superagent_1 = __importDefault(require("superagent"));
|
8
|
+
const postSetMock = {
|
9
|
+
send: jest.fn(),
|
10
|
+
};
|
11
|
+
const postMock = {
|
12
|
+
set: () => {
|
13
|
+
return postSetMock;
|
14
|
+
},
|
15
|
+
};
|
16
|
+
jest.mock('superagent', () => ({
|
17
|
+
post: () => {
|
18
|
+
return postMock;
|
19
|
+
},
|
20
|
+
}));
|
21
|
+
const loggerConfig = {
|
22
|
+
enabled: true,
|
23
|
+
logUrl: 'some-log-url',
|
24
|
+
key: 'some-key',
|
25
|
+
tenantId: 'some-tenant-id',
|
26
|
+
tags: 'some-tags',
|
27
|
+
};
|
28
28
|
describe('ComponentLogger', () => {
|
29
|
-
|
29
|
+
afterEach(() => {
|
30
|
+
jest.clearAllMocks();
|
31
|
+
});
|
32
|
+
beforeAll(() => {
|
33
|
+
jest.useFakeTimers();
|
34
|
+
jest.setSystemTime(new Date('2023-05-28T00:00:00.000Z'));
|
35
|
+
});
|
36
|
+
afterAll(() => {
|
37
|
+
jest.useRealTimers();
|
38
|
+
});
|
39
|
+
it('should throw error if config.logUrl is not set', async () => {
|
40
|
+
const loggerConfig = {
|
41
|
+
enabled: true,
|
42
|
+
logUrl: '',
|
43
|
+
key: 'some-key',
|
44
|
+
tenantId: 'some-tenant-id',
|
45
|
+
tags: 'some-tags',
|
46
|
+
};
|
47
|
+
expect(() => new component_logger_1.ComponentLogger(loggerConfig)).toThrow('config.logUrl is required');
|
48
|
+
});
|
49
|
+
it('should throw error if config.key is not set', async () => {
|
30
50
|
const config = {
|
31
|
-
enabled:
|
32
|
-
logUrl:
|
33
|
-
key:
|
34
|
-
tenantId:
|
35
|
-
tags:
|
51
|
+
enabled: true,
|
52
|
+
logUrl: 'some-log-url',
|
53
|
+
key: '',
|
54
|
+
tenantId: 'some-tenant-id',
|
55
|
+
tags: 'some-tags',
|
56
|
+
};
|
57
|
+
expect(() => new component_logger_1.ComponentLogger(config)).toThrow('config.key is required');
|
58
|
+
});
|
59
|
+
it('should throw error if config.tenantId is not set', async () => {
|
60
|
+
const loggerConfig = {
|
61
|
+
enabled: true,
|
62
|
+
logUrl: 'some-log-url',
|
63
|
+
key: 'some-key',
|
64
|
+
tenantId: '',
|
65
|
+
tags: 'some-tags',
|
66
|
+
};
|
67
|
+
expect(() => new component_logger_1.ComponentLogger(loggerConfig)).toThrow('config.tenantId is required');
|
68
|
+
});
|
69
|
+
it('should set correct log service URL and API key', async () => {
|
70
|
+
const postSpy = jest.spyOn(superagent_1.default, 'post');
|
71
|
+
const postSetSpy = jest.spyOn(postMock, 'set');
|
72
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
73
|
+
await logger.info('The quick brown fox', '123');
|
74
|
+
await logger.flush();
|
75
|
+
expect(postSpy).toBeCalledWith('some-log-url/some-tenant-id');
|
76
|
+
expect(postSetSpy).toBeCalledWith('x-api-key', 'some-key');
|
77
|
+
});
|
78
|
+
it('should strip off extra "/" on the logUrl', async () => {
|
79
|
+
const loggerConfig = {
|
80
|
+
enabled: true,
|
81
|
+
logUrl: 'some-log-url/',
|
82
|
+
key: 'some-key',
|
83
|
+
tenantId: 'some-tenant-id',
|
84
|
+
tags: 'some-tags',
|
85
|
+
};
|
86
|
+
const postSpy = jest.spyOn(superagent_1.default, 'post');
|
87
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
88
|
+
await logger.info('The quick brown fox', '123');
|
89
|
+
await logger.flush();
|
90
|
+
expect(postSpy).toBeCalledWith('some-log-url/some-tenant-id');
|
91
|
+
});
|
92
|
+
it('should not send message if disabled', async () => {
|
93
|
+
const loggerConfig = {
|
94
|
+
enabled: false,
|
95
|
+
logUrl: 'some-log-url',
|
96
|
+
key: 'some-key',
|
97
|
+
tenantId: 'some-tenant-id',
|
98
|
+
tags: 'some-tags',
|
36
99
|
};
|
37
|
-
const logger = new component_logger_1.ComponentLogger(
|
100
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
101
|
+
await logger.warn('this message wont be sent', '123');
|
102
|
+
await logger.flush();
|
103
|
+
expect(postSetMock.send).toBeCalledTimes(0);
|
104
|
+
});
|
105
|
+
it('should send the log messages in batch', async () => {
|
106
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
107
|
+
await logger.info('The quick brown fox 1', '123');
|
108
|
+
await logger.info('The quick brown fox 2', '124');
|
109
|
+
await logger.flush();
|
110
|
+
const expectedMessages = [
|
111
|
+
{
|
112
|
+
level: 'INFO',
|
113
|
+
service: 'render-runtime',
|
114
|
+
timestamp: '2023-05-28T00:00:00.000Z',
|
115
|
+
message: 'The quick brown fox 1',
|
116
|
+
tags: 'some-tags',
|
117
|
+
traceid: '123',
|
118
|
+
},
|
119
|
+
{
|
120
|
+
level: 'INFO',
|
121
|
+
service: 'render-runtime',
|
122
|
+
timestamp: '2023-05-28T00:00:00.000Z',
|
123
|
+
message: 'The quick brown fox 2',
|
124
|
+
tags: 'some-tags',
|
125
|
+
traceid: '124',
|
126
|
+
},
|
127
|
+
];
|
128
|
+
expect(postSetMock.send).toBeCalledWith(expectedMessages);
|
129
|
+
});
|
130
|
+
it('should json encode the message if not string', async () => {
|
131
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
132
|
+
await logger.warn(['this', 'is', 'not string'], '123');
|
133
|
+
await logger.flush();
|
134
|
+
const expectedMessages = [
|
135
|
+
{
|
136
|
+
level: 'WARN',
|
137
|
+
service: 'render-runtime',
|
138
|
+
timestamp: '2023-05-28T00:00:00.000Z',
|
139
|
+
message: '["this","is","not string"]',
|
140
|
+
tags: 'some-tags',
|
141
|
+
traceid: '123',
|
142
|
+
},
|
143
|
+
];
|
144
|
+
expect(postSetMock.send).toBeCalledWith(expectedMessages);
|
145
|
+
});
|
146
|
+
it('should not send message if there is nothing the message queue', async () => {
|
147
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
148
|
+
await logger.flush();
|
149
|
+
expect(postSetMock.send).toBeCalledTimes(0);
|
150
|
+
});
|
151
|
+
it('should clear the message queue after sending the message', async () => {
|
152
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
38
153
|
await logger.info('The quick brown fox', '123');
|
154
|
+
// flushing the log messages again should trigger send only once
|
155
|
+
await logger.flush();
|
156
|
+
await logger.flush();
|
157
|
+
await logger.flush();
|
158
|
+
await logger.flush();
|
159
|
+
expect(postSetMock.send).toBeCalledTimes(1);
|
160
|
+
});
|
161
|
+
it('should not send message till queue reaching the max message count', async () => {
|
162
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
163
|
+
await logger.info('The quick brown fox', '123');
|
164
|
+
expect(postSetMock.send).toBeCalledTimes(0);
|
165
|
+
});
|
166
|
+
it('should automatically flush the queue after reaching the max message count', async () => {
|
167
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
168
|
+
for (let count = 0; count <= 100; count++) {
|
169
|
+
await logger.info('The quick brown fox', `${count}`);
|
170
|
+
}
|
171
|
+
// this should send all 100 messages above in a single go
|
172
|
+
expect(postSetMock.send).toBeCalledTimes(1);
|
173
|
+
});
|
174
|
+
it('should send debug message', async () => {
|
175
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
176
|
+
await logger.debug('some debug message', '123');
|
177
|
+
await logger.flush();
|
178
|
+
const expectedMessages = [
|
179
|
+
{
|
180
|
+
level: 'DEBUG',
|
181
|
+
service: 'render-runtime',
|
182
|
+
timestamp: '2023-05-28T00:00:00.000Z',
|
183
|
+
message: 'some debug message',
|
184
|
+
tags: 'some-tags',
|
185
|
+
traceid: '123',
|
186
|
+
},
|
187
|
+
];
|
188
|
+
expect(postSetMock.send).toBeCalledWith(expectedMessages);
|
189
|
+
});
|
190
|
+
it('should send warn message', async () => {
|
191
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
192
|
+
await logger.warn('some warn message', '123');
|
193
|
+
await logger.flush();
|
194
|
+
const expectedMessages = [
|
195
|
+
{
|
196
|
+
level: 'WARN',
|
197
|
+
service: 'render-runtime',
|
198
|
+
timestamp: '2023-05-28T00:00:00.000Z',
|
199
|
+
message: 'some warn message',
|
200
|
+
tags: 'some-tags',
|
201
|
+
traceid: '123',
|
202
|
+
},
|
203
|
+
];
|
204
|
+
expect(postSetMock.send).toBeCalledWith(expectedMessages);
|
205
|
+
});
|
206
|
+
it('should send error message', async () => {
|
207
|
+
const logger = new component_logger_1.ComponentLogger(loggerConfig);
|
208
|
+
await logger.error('some error message', '123');
|
39
209
|
await logger.flush();
|
210
|
+
const expectedMessages = [
|
211
|
+
{
|
212
|
+
level: 'ERROR',
|
213
|
+
service: 'render-runtime',
|
214
|
+
timestamp: '2023-05-28T00:00:00.000Z',
|
215
|
+
message: 'some error message',
|
216
|
+
tags: 'some-tags',
|
217
|
+
traceid: '123',
|
218
|
+
},
|
219
|
+
];
|
220
|
+
expect(postSetMock.send).toBeCalledWith(expectedMessages);
|
40
221
|
});
|
41
222
|
});
|
42
223
|
//# sourceMappingURL=component-logger.spec.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"component-logger.spec.js","sourceRoot":"","sources":["../src/component-logger.spec.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"component-logger.spec.js","sourceRoot":"","sources":["../src/component-logger.spec.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { ComponentLogger } from './component-logger';
|
2
|
+
export declare function getComponentLogger(config: {
|
3
|
+
enabled: boolean;
|
4
|
+
tenantId: string;
|
5
|
+
accessSecret?: string | false | undefined;
|
6
|
+
accessCredentials?: string | false | undefined;
|
7
|
+
tags: string;
|
8
|
+
}): Promise<ComponentLogger>;
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getComponentLogger = void 0;
|
4
|
+
const component_logger_1 = require("./component-logger");
|
5
|
+
const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
|
6
|
+
async function getComponentLogger(config) {
|
7
|
+
if (config.accessSecret && config.accessCredentials) {
|
8
|
+
throw new Error('Only either of Logging Service API accessSecret or accessCredentials should be provided');
|
9
|
+
}
|
10
|
+
let apiAccessString = '';
|
11
|
+
if (config.enabled) {
|
12
|
+
if (config.accessCredentials) {
|
13
|
+
apiAccessString = config.accessCredentials;
|
14
|
+
}
|
15
|
+
else if (config.accessSecret) {
|
16
|
+
apiAccessString = await getSecretString(config.accessSecret);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
let apiAccessInfo = {
|
20
|
+
url: '',
|
21
|
+
key: '',
|
22
|
+
};
|
23
|
+
if (apiAccessString.length) {
|
24
|
+
apiAccessInfo = JSON.parse(apiAccessString);
|
25
|
+
}
|
26
|
+
return new component_logger_1.ComponentLogger({
|
27
|
+
enabled: config.enabled,
|
28
|
+
tenantId: config.tenantId,
|
29
|
+
logUrl: apiAccessInfo.url,
|
30
|
+
key: apiAccessInfo.key,
|
31
|
+
tags: config.tags,
|
32
|
+
});
|
33
|
+
}
|
34
|
+
exports.getComponentLogger = getComponentLogger;
|
35
|
+
async function getSecretString(id) {
|
36
|
+
const client = new client_secrets_manager_1.SecretsManagerClient({});
|
37
|
+
const result = await client.send(new client_secrets_manager_1.GetSecretValueCommand({ SecretId: id }));
|
38
|
+
if (result.SecretString === undefined) {
|
39
|
+
throw new Error(`Secret ${id} could not be found`);
|
40
|
+
}
|
41
|
+
return result.SecretString;
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=getComponentLogger.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getComponentLogger.js","sourceRoot":"","sources":["../src/getComponentLogger.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,4EAA8F;AAOvF,KAAK,UAAU,kBAAkB,CAAC,MAMxC;IACC,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,iBAAiB,EAAE;QACnD,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;KAC5G;IAED,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,MAAM,CAAC,OAAO,EAAE;QAClB,IAAI,MAAM,CAAC,iBAAiB,EAAE;YAC5B,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;SAC5C;aAAM,IAAI,MAAM,CAAC,YAAY,EAAE;YAC9B,eAAe,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC9D;KACF;IACD,IAAI,aAAa,GAAkB;QACjC,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR,CAAC;IACF,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;KAC7C;IAED,OAAO,IAAI,kCAAe,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,aAAa,CAAC,GAAG;QACzB,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CAAC;AACL,CAAC;AAlCD,gDAkCC;AAED,KAAK,UAAU,eAAe,CAAC,EAAU;IACvC,MAAM,MAAM,GAAG,IAAI,6CAAoB,CAAC,EAAE,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,8CAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9E,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;KACpD;IAED,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const getComponentLogger_1 = require("./getComponentLogger");
|
4
|
+
describe('getComponentLogger', () => {
|
5
|
+
it('should return the logger object', async () => {
|
6
|
+
const logger = await (0, getComponentLogger_1.getComponentLogger)({
|
7
|
+
enabled: false,
|
8
|
+
accessCredentials: JSON.stringify({
|
9
|
+
url: 'some-url',
|
10
|
+
key: 'some-key',
|
11
|
+
}),
|
12
|
+
tags: 'some-tags',
|
13
|
+
tenantId: 'some-tenant-id',
|
14
|
+
});
|
15
|
+
expect(logger).toBeTruthy();
|
16
|
+
});
|
17
|
+
it('should throw error if both accessSecret and accessCredential is provided', async () => {
|
18
|
+
const logger = (0, getComponentLogger_1.getComponentLogger)({
|
19
|
+
enabled: false,
|
20
|
+
accessSecret: 'some-access-secret',
|
21
|
+
accessCredentials: 'some-access-creds',
|
22
|
+
tags: 'some-tags',
|
23
|
+
tenantId: 'some-tenant-id',
|
24
|
+
});
|
25
|
+
await expect(logger).rejects.toThrowError('Only either of Logging Service API accessSecret or accessCredentials should be provided');
|
26
|
+
});
|
27
|
+
});
|
28
|
+
//# sourceMappingURL=getComponentLogger.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getComponentLogger.spec.js","sourceRoot":"","sources":["../src/getComponentLogger.spec.ts"],"names":[],"mappings":";;AAAA,6DAA0D;AAG1D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,MAAM,GAAoB,MAAM,IAAA,uCAAkB,EAAC;YACvD,OAAO,EAAE,KAAK;YACd,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC;gBAChC,GAAG,EAAE,UAAU;gBACf,GAAG,EAAE,UAAU;aAChB,CAAC;YACF,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC;YAChC,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,oBAAoB;YAClC,iBAAiB,EAAE,mBAAmB;YACtC,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CACvC,yFAAyF,CAC1F,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.ComponentLogger = void 0;
|
3
|
+
exports.getComponentLogger = exports.ComponentLogger = void 0;
|
4
4
|
var component_logger_1 = require("./component-logger");
|
5
5
|
Object.defineProperty(exports, "ComponentLogger", { enumerable: true, get: function () { return component_logger_1.ComponentLogger; } });
|
6
|
+
var getComponentLogger_1 = require("./getComponentLogger");
|
7
|
+
Object.defineProperty(exports, "getComponentLogger", { enumerable: true, get: function () { return getComponentLogger_1.getComponentLogger; } });
|
6
8
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA"}
|
package/package.json
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
{
|
2
2
|
"name": "@squiz/component-logger-lib",
|
3
|
-
"version": "1.32.1-alpha.
|
3
|
+
"version": "1.32.1-alpha.26",
|
4
4
|
"description": "",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"scripts": {
|
7
|
-
"test": "jest
|
7
|
+
"test": "jest -c jest.config.ts",
|
8
|
+
"test:integration": "jest -c jest.integration.config.ts",
|
8
9
|
"compile": "tsc"
|
9
10
|
},
|
10
11
|
"author": "",
|
@@ -13,11 +14,12 @@
|
|
13
14
|
"superagent": "^8.0.9"
|
14
15
|
},
|
15
16
|
"devDependencies": {
|
17
|
+
"@squiz/dx-common-lib": "1.32.1-alpha.19",
|
16
18
|
"@types/node": "18.15.2",
|
17
19
|
"dotenv": "^16.0.3",
|
18
20
|
"jest": "29.4.1",
|
19
21
|
"ts-jest": "29.0.5",
|
20
22
|
"ts-node": "10.9.1"
|
21
23
|
},
|
22
|
-
"gitHead": "
|
24
|
+
"gitHead": "a87ea107611743ec410eb21fc4f20d23cefb06f7"
|
23
25
|
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { parseEnvVarForVar } from '@squiz/dx-common-lib';
|
2
|
+
import { getComponentLogger } from '.';
|
3
|
+
|
4
|
+
describe('ComponentLogger', () => {
|
5
|
+
it('should sending log messages', async () => {
|
6
|
+
const logger = await getComponentLogger({
|
7
|
+
enabled: true,
|
8
|
+
tenantId: 'integration-test',
|
9
|
+
accessCredentials: parseEnvVarForVar('LOGGING_SERVICE_API_CREDENTIALS'),
|
10
|
+
tags: 'env:dev integration-test',
|
11
|
+
});
|
12
|
+
|
13
|
+
await logger.info('The quick brown fox', '123');
|
14
|
+
await logger.flush();
|
15
|
+
});
|
16
|
+
});
|