@rockster/logger 0.0.3 → 0.1.0

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.
Files changed (55) hide show
  1. package/config/remote-persist.config.d.ts +14 -0
  2. package/config/remote-persist.config.js +55 -0
  3. package/config/remote-persist.config.js.map +1 -0
  4. package/env.js +16 -6
  5. package/env.js.map +1 -1
  6. package/functions/dispatch-log.d.ts +2 -0
  7. package/functions/dispatch-log.js +17 -0
  8. package/functions/dispatch-log.js.map +1 -0
  9. package/functions/enable-console.js +0 -4
  10. package/functions/enable-console.js.map +1 -1
  11. package/functions/get-error-infos.d.ts +2 -2
  12. package/functions/get-error-infos.js +40 -13
  13. package/functions/get-error-infos.js.map +1 -1
  14. package/functions/index.d.ts +3 -0
  15. package/functions/index.js +3 -0
  16. package/functions/index.js.map +1 -1
  17. package/functions/log-level.d.ts +7 -0
  18. package/functions/log-level.js +42 -0
  19. package/functions/log-level.js.map +1 -0
  20. package/functions/merge-log-extras.d.ts +3 -0
  21. package/functions/merge-log-extras.js +31 -0
  22. package/functions/merge-log-extras.js.map +1 -0
  23. package/functions/parse-bulk-index-response.d.ts +4 -0
  24. package/functions/parse-bulk-index-response.js +40 -0
  25. package/functions/parse-bulk-index-response.js.map +1 -0
  26. package/functions/probe-log-store.d.ts +12 -0
  27. package/functions/probe-log-store.js +182 -0
  28. package/functions/probe-log-store.js.map +1 -0
  29. package/functions/serialize-log-for-persist.d.ts +4 -0
  30. package/functions/serialize-log-for-persist.js +54 -0
  31. package/functions/serialize-log-for-persist.js.map +1 -0
  32. package/functions/write-log-store-status.d.ts +5 -0
  33. package/functions/write-log-store-status.js +50 -0
  34. package/functions/write-log-store-status.js.map +1 -0
  35. package/index.d.ts +4 -0
  36. package/index.js +4 -0
  37. package/index.js.map +1 -1
  38. package/interfaces/log.d.ts +16 -0
  39. package/interfaces/log.js.map +1 -1
  40. package/logger.d.ts +9 -4
  41. package/logger.js +22 -9
  42. package/logger.js.map +1 -1
  43. package/package.json +33 -33
  44. package/services/log-runtime.service.d.ts +65 -0
  45. package/services/log-runtime.service.js +397 -0
  46. package/services/log-runtime.service.js.map +1 -0
  47. package/services/opensearch-client.d.ts +14 -0
  48. package/services/opensearch-client.js +113 -0
  49. package/services/opensearch-client.js.map +1 -0
  50. package/services/remote-persist.service.d.ts +31 -0
  51. package/services/remote-persist.service.js +261 -0
  52. package/services/remote-persist.service.js.map +1 -0
  53. package/stdout-writer.d.ts +6 -5
  54. package/stdout-writer.js +49 -46
  55. package/stdout-writer.js.map +1 -1
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getRemotePersist = exports.initRemotePersist = exports.RemotePersistService = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const remote_persist_config_1 = require("../config/remote-persist.config");
10
+ const parse_bulk_index_response_1 = require("../functions/parse-bulk-index-response");
11
+ const probe_log_store_1 = require("../functions/probe-log-store");
12
+ const write_log_store_status_1 = require("../functions/write-log-store-status");
13
+ const log_runtime_service_1 = require("./log-runtime.service");
14
+ const serialize_log_for_persist_1 = require("../functions/serialize-log-for-persist");
15
+ const interfaces_1 = require("../interfaces");
16
+ const BATCH_MAX = 50;
17
+ const BATCH_FLUSH_MS = 2000;
18
+ const RETRY_INTERVAL_MS = 10000;
19
+ const QUEUE_MAX = 10000;
20
+ const SHUTDOWN_FLUSH_MS = 3000;
21
+ const CONNECT_TIMEOUT_MS = 5000;
22
+ class RemotePersistService {
23
+ constructor(config) {
24
+ var _a, _b;
25
+ this.config = config;
26
+ this.queue = [];
27
+ this.flushTimer = null;
28
+ this.retryTimer = null;
29
+ this.flushing = false;
30
+ this.shutdownRegistered = false;
31
+ this.connected = null;
32
+ this.ensureSpoolDir();
33
+ this.retryTimer = setInterval(() => {
34
+ void this.retrySpool();
35
+ }, RETRY_INTERVAL_MS);
36
+ (_b = (_a = this.retryTimer).unref) === null || _b === void 0 ? void 0 : _b.call(_a);
37
+ this.registerShutdown();
38
+ void this.reportStartupStatus();
39
+ }
40
+ async verifyConnection() {
41
+ const report = await (0, probe_log_store_1.probeLogStore)(this.config);
42
+ return report.ok;
43
+ }
44
+ async reportStartupStatus() {
45
+ const report = await (0, probe_log_store_1.probeLogStore)(this.config);
46
+ this.connected = report.ok;
47
+ (0, write_log_store_status_1.writeLogStoreStartupReport)(this.config, report);
48
+ }
49
+ getAuthHeader() {
50
+ return `Basic ${Buffer.from(`${this.config.username}:${this.config.password}`).toString('base64')}`;
51
+ }
52
+ enqueue(log) {
53
+ var _a;
54
+ const document = (0, serialize_log_for_persist_1.serializeLogForPersist)(log, this.config);
55
+ (_a = (0, log_runtime_service_1.getLogRuntime)()) === null || _a === void 0 ? void 0 : _a.onLog(document);
56
+ if (this.queue.length >= QUEUE_MAX) {
57
+ void this.appendSpool([document]);
58
+ return;
59
+ }
60
+ this.queue.push(document);
61
+ this.scheduleFlush(log.type === interfaces_1.LogType.error);
62
+ }
63
+ scheduleFlush(immediate = false) {
64
+ var _a, _b;
65
+ if (immediate || this.queue.length >= BATCH_MAX) {
66
+ if (this.flushTimer) {
67
+ clearTimeout(this.flushTimer);
68
+ this.flushTimer = null;
69
+ }
70
+ setImmediate(() => void this.flushQueue());
71
+ return;
72
+ }
73
+ if (this.flushTimer) {
74
+ return;
75
+ }
76
+ this.flushTimer = setTimeout(() => {
77
+ this.flushTimer = null;
78
+ void this.flushQueue();
79
+ }, BATCH_FLUSH_MS);
80
+ (_b = (_a = this.flushTimer).unref) === null || _b === void 0 ? void 0 : _b.call(_a);
81
+ }
82
+ async flushQueue() {
83
+ if (this.queue.length === 0) {
84
+ return;
85
+ }
86
+ if (this.flushing) {
87
+ setImmediate(() => this.scheduleFlush());
88
+ return;
89
+ }
90
+ this.flushing = true;
91
+ const batch = this.queue.splice(0, BATCH_MAX);
92
+ try {
93
+ const { failed } = await this.sendBulk(batch);
94
+ if (failed.length > 0) {
95
+ await this.appendSpool(failed);
96
+ }
97
+ }
98
+ finally {
99
+ this.flushing = false;
100
+ if (this.queue.length > 0) {
101
+ this.scheduleFlush();
102
+ }
103
+ }
104
+ }
105
+ async retrySpool() {
106
+ if (this.flushing) {
107
+ return;
108
+ }
109
+ const documents = await this.claimSpoolDocuments();
110
+ if (documents.length === 0) {
111
+ return;
112
+ }
113
+ this.flushing = true;
114
+ const failed = [];
115
+ try {
116
+ for (let offset = 0; offset < documents.length; offset += BATCH_MAX) {
117
+ const batch = documents.slice(offset, offset + BATCH_MAX);
118
+ const result = await this.sendBulk(batch);
119
+ if (result.failed.length > 0) {
120
+ failed.push(...result.failed);
121
+ }
122
+ }
123
+ if (failed.length > 0) {
124
+ await this.appendSpool(failed);
125
+ }
126
+ }
127
+ finally {
128
+ this.flushing = false;
129
+ if (this.queue.length > 0) {
130
+ this.scheduleFlush();
131
+ }
132
+ }
133
+ }
134
+ async claimSpoolDocuments() {
135
+ if (!fs_1.default.existsSync(this.config.spoolPath)) {
136
+ return [];
137
+ }
138
+ const claimPath = `${this.config.spoolPath}.${process.pid}.${Date.now()}.claim`;
139
+ try {
140
+ await fs_1.default.promises.rename(this.config.spoolPath, claimPath);
141
+ }
142
+ catch (_a) {
143
+ return [];
144
+ }
145
+ let content = '';
146
+ try {
147
+ content = await fs_1.default.promises.readFile(claimPath, 'utf8');
148
+ }
149
+ finally {
150
+ await fs_1.default.promises.unlink(claimPath).catch(() => undefined);
151
+ }
152
+ const documents = [];
153
+ for (const line of content.split('\n')) {
154
+ const trimmed = line.trim();
155
+ if (!trimmed) {
156
+ continue;
157
+ }
158
+ try {
159
+ documents.push(JSON.parse(trimmed));
160
+ }
161
+ catch (_b) {
162
+ }
163
+ }
164
+ return documents;
165
+ }
166
+ async sendBulk(documents) {
167
+ if (documents.length === 0) {
168
+ return { failed: [] };
169
+ }
170
+ const body = documents
171
+ .map((doc) => {
172
+ const action = JSON.stringify({ index: {} });
173
+ const source = JSON.stringify(doc);
174
+ return `${action}\n${source}`;
175
+ })
176
+ .join('\n') + '\n';
177
+ const url = `${this.config.url}/${this.config.index}/_bulk`;
178
+ const auth = this.getAuthHeader();
179
+ try {
180
+ const response = await fetch(url, {
181
+ method: 'POST',
182
+ headers: {
183
+ 'Content-Type': 'application/x-ndjson',
184
+ Authorization: auth,
185
+ },
186
+ body,
187
+ signal: AbortSignal.timeout(CONNECT_TIMEOUT_MS),
188
+ });
189
+ if (!response.ok) {
190
+ return { failed: documents };
191
+ }
192
+ const result = await response.json();
193
+ const failed = (0, parse_bulk_index_response_1.documentsFailedInBulkResponse)(documents, result.items, result.errors === true);
194
+ return { failed };
195
+ }
196
+ catch (_a) {
197
+ return { failed: documents };
198
+ }
199
+ }
200
+ async appendSpool(documents) {
201
+ if (documents.length === 0) {
202
+ return;
203
+ }
204
+ this.ensureSpoolDir();
205
+ const lines = documents.map((doc) => JSON.stringify(doc)).join('\n') + '\n';
206
+ await fs_1.default.promises.appendFile(this.config.spoolPath, lines, 'utf8');
207
+ }
208
+ ensureSpoolDir() {
209
+ const dir = path_1.default.dirname(this.config.spoolPath);
210
+ if (!fs_1.default.existsSync(dir)) {
211
+ fs_1.default.mkdirSync(dir, { recursive: true });
212
+ }
213
+ }
214
+ registerShutdown() {
215
+ if (this.shutdownRegistered) {
216
+ return;
217
+ }
218
+ this.shutdownRegistered = true;
219
+ const shutdown = () => {
220
+ void this.shutdownFlush();
221
+ };
222
+ process.once('beforeExit', shutdown);
223
+ process.once('SIGTERM', shutdown);
224
+ process.once('SIGINT', shutdown);
225
+ }
226
+ async shutdownFlush() {
227
+ if (this.flushTimer) {
228
+ clearTimeout(this.flushTimer);
229
+ this.flushTimer = null;
230
+ }
231
+ const deadline = Date.now() + SHUTDOWN_FLUSH_MS;
232
+ while (this.queue.length > 0 && Date.now() < deadline) {
233
+ await this.flushQueue();
234
+ }
235
+ if (this.queue.length > 0) {
236
+ await this.appendSpool(this.queue.splice(0));
237
+ }
238
+ await this.retrySpool();
239
+ }
240
+ }
241
+ exports.RemotePersistService = RemotePersistService;
242
+ let remotePersistInstance = null;
243
+ const initRemotePersist = () => {
244
+ if (remotePersistInstance) {
245
+ return remotePersistInstance;
246
+ }
247
+ const config = (0, remote_persist_config_1.readRemotePersistConfig)();
248
+ if (!config) {
249
+ return null;
250
+ }
251
+ remotePersistInstance = new RemotePersistService(config);
252
+ const runtime = (0, log_runtime_service_1.initLogRuntime)(config);
253
+ void runtime.registerApp();
254
+ return remotePersistInstance;
255
+ };
256
+ exports.initRemotePersist = initRemotePersist;
257
+ const getRemotePersist = () => {
258
+ return remotePersistInstance;
259
+ };
260
+ exports.getRemotePersist = getRemotePersist;
261
+ //# sourceMappingURL=remote-persist.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-persist.service.js","sourceRoot":"","sources":["../../services/remote-persist.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import 'colors';
1
2
  import { Moment } from "moment";
2
3
  import { ILogError, ILogWarn, Log } from "./interfaces";
3
4
  export declare class StdoutWriter {
@@ -9,13 +10,13 @@ export declare class StdoutWriter {
9
10
  protected stackTraceLabel: string;
10
11
  protected endStackTraceLabel: string;
11
12
  write(log: Log): void;
13
+ formatStdout(log: Log): string[];
12
14
  protected createLabel(container: string, text: string): string;
13
15
  protected getSection(label: string): string;
14
- protected log(log: Log): void;
15
- protected printDebug(log: Log): void;
16
- protected printInfo(log: Log): void;
17
- protected printError(log: ILogError): void;
18
- protected printWarn(log: ILogWarn): void;
16
+ protected formatDebugLine(log: Log): string;
17
+ protected formatInfoLine(log: Log): string;
18
+ protected formatErrorLines(log: ILogError): string[];
19
+ protected formatWarnLine(log: ILogWarn): string;
19
20
  protected getStyled(date: string, context: string, duration: string): {
20
21
  date: string;
21
22
  context: string;
package/stdout-writer.js CHANGED
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.StdoutWriter = void 0;
7
+ require("colors");
7
8
  const moment_1 = __importDefault(require("moment"));
8
9
  const interfaces_1 = require("./interfaces");
9
10
  const get_error_infos_1 = require("./functions/get-error-infos");
@@ -22,7 +23,21 @@ class StdoutWriter {
22
23
  .bgRed;
23
24
  }
24
25
  write(log) {
25
- this.log(log);
26
+ for (const line of this.formatStdout(log)) {
27
+ process.stdout.write(`${line}\n`);
28
+ }
29
+ }
30
+ formatStdout(log) {
31
+ switch (log.type) {
32
+ case interfaces_1.LogType.info:
33
+ return [this.formatInfoLine(log)];
34
+ case interfaces_1.LogType.error:
35
+ return this.formatErrorLines(log);
36
+ case interfaces_1.LogType.warn:
37
+ return [this.formatWarnLine(log)];
38
+ case interfaces_1.LogType.debug:
39
+ return [this.formatDebugLine(log)];
40
+ }
26
41
  }
27
42
  createLabel(container, text) {
28
43
  let label = '';
@@ -42,84 +57,70 @@ class StdoutWriter {
42
57
  getSection(label) {
43
58
  return this.createLabel('-', label);
44
59
  }
45
- log(log) {
46
- switch (log.type) {
47
- case interfaces_1.LogType.info:
48
- return this.printInfo(log);
49
- case interfaces_1.LogType.error:
50
- return this.printError(log);
51
- case interfaces_1.LogType.warn:
52
- return this.printWarn(log);
53
- case interfaces_1.LogType.debug:
54
- return this.printDebug(log);
55
- }
56
- }
57
- printDebug(log) {
60
+ formatDebugLine(log) {
58
61
  var _a;
59
62
  const message = (_a = this
60
63
  .getMessage(log.message)) === null || _a === void 0 ? void 0 : _a.gray;
61
64
  const { date, context, duration, processInfo } = this
62
65
  .getStyled(this.formatDate(log.date), log.context, this.getDuration(log.duration));
63
- process.stdout.write(`${processInfo}${date}${context} ${message} ${duration}\n`);
66
+ return `${processInfo}${date}${context} ${message} ${duration}`.trimEnd();
64
67
  }
65
- printInfo(log) {
68
+ formatInfoLine(log) {
66
69
  var _a;
67
70
  const message = (_a = this
68
71
  .getMessage(log.message)) === null || _a === void 0 ? void 0 : _a.green;
69
72
  const { date, context, duration, processInfo } = this
70
73
  .getStyled(this.formatDate(log.date), log.context, this.getDuration(log.duration));
71
- process.stdout.write(`${processInfo}${date}${context} ${message} ${duration}\n`);
74
+ return `${processInfo}${date}${context} ${message} ${duration}`.trimEnd();
72
75
  }
73
- printError(log) {
74
- var _a, _b, _c;
76
+ formatErrorLines(log) {
77
+ var _a, _b, _c, _d;
75
78
  const message = (_a = this.getMessage(log.message)) === null || _a === void 0 ? void 0 : _a.red;
76
79
  const { date, context, duration, processInfo } = this
77
80
  .getStyled(this.formatDate(log.date), log.context, this.getDuration(log.duration));
78
- const text = `${processInfo}${date}${context} ${message} ${duration}\n`;
79
- process.stdout.write(text);
81
+ const lines = [
82
+ `${processInfo}${date}${context} ${message} ${duration}`.trimEnd(),
83
+ ];
80
84
  if (log.error) {
81
- const textSection = this.getSection('ERROR DETAILS').bgRed + '\n';
82
- process.stdout.write(textSection);
85
+ lines.push(this.getSection('ERROR DETAILS').bgRed);
83
86
  const errorInfos = (0, get_error_infos_1.getErrorInfos)(log.error);
84
- const detailedText = errorInfos.message.red;
85
- process.stdout.write(detailedText);
86
- log.error = errorInfos.values;
87
- const stackRaw = log.error.stack;
87
+ lines.push(errorInfos.message.red.replace(/\n$/, ''));
88
+ const stackRaw = (_b = errorInfos.values.stack) !== null && _b !== void 0 ? _b : log.error.stack;
88
89
  if (typeof stackRaw === "string" && stackRaw.length) {
89
- const stackText = `${stackRaw.replace(`${(_b = log.message) !== null && _b !== void 0 ? _b : ""}\n`, "").grey.italic}\n`;
90
- process.stdout.write(stackText);
90
+ lines.push(stackRaw
91
+ .replace(`${(_c = log.message) !== null && _c !== void 0 ? _c : ""}\n`, "")
92
+ .grey
93
+ .italic);
91
94
  }
92
- const endTextSection = this.getSection('END ERROR DETAILS').bgRed + '\n';
93
- process.stdout.write(endTextSection);
94
- return;
95
+ lines.push(this.getSection('END ERROR DETAILS').bgRed);
96
+ return lines;
95
97
  }
96
98
  if (log.stack) {
97
- const stackLabel = this.getSection('STACK TRACE').bgRed + '\n';
98
- process.stdout.write(stackLabel);
99
+ lines.push(this.getSection('STACK TRACE').bgRed);
99
100
  const stackRaw = log.stack;
100
101
  const stripped = typeof stackRaw === "string"
101
- ? stackRaw.replace(`${(_c = log.message) !== null && _c !== void 0 ? _c : ""}\n`, "")
102
+ ? stackRaw.replace(`${(_d = log.message) !== null && _d !== void 0 ? _d : ""}\n`, "")
102
103
  : "";
103
- const stackText = `${stripped.grey.italic}\n`;
104
- process.stdout.write(stackText);
105
- const endStack = this.getSection('END STACK TRACE').bgRed + '\n';
106
- process.stdout.write(endStack);
104
+ lines.push(stripped.grey.italic);
105
+ lines.push(this.getSection('END STACK TRACE').bgRed);
107
106
  }
107
+ return lines;
108
108
  }
109
- printWarn(log) {
109
+ formatWarnLine(log) {
110
110
  var _a;
111
111
  const message = (_a = this.getMessage(log.message)) === null || _a === void 0 ? void 0 : _a.magenta;
112
112
  const { date, context, duration, processInfo } = this
113
113
  .getStyled(this.formatDate(log.date), log.context, this.getDuration(log.duration));
114
- process.stdout.write(`${processInfo}${date}${context} ${message} ${duration}\n`);
114
+ return `${processInfo}${date}${context} ${message} ${duration}`.trimEnd();
115
115
  }
116
116
  getStyled(date, context, duration) {
117
- var _a;
117
+ var _a, _b, _c;
118
+ const appName = (_b = (_a = global.logger) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'App';
118
119
  return {
119
120
  date: `${date} `,
120
121
  context: this.getBrackets(context).yellow,
121
- duration: (_a = this.getBrackets(duration)) === null || _a === void 0 ? void 0 : _a.yellow,
122
- processInfo: `[${logger.name}] ${process.pid} - `.green
122
+ duration: (_c = this.getBrackets(duration)) === null || _c === void 0 ? void 0 : _c.yellow,
123
+ processInfo: `[${appName}] ${process.pid} - `.green
123
124
  };
124
125
  }
125
126
  getDuration(value) {
@@ -142,11 +143,13 @@ class StdoutWriter {
142
143
  : '';
143
144
  }
144
145
  formatDate(date) {
146
+ var _a, _b;
147
+ const dateFormat = (_b = (_a = global.logger) === null || _a === void 0 ? void 0 : _a.dataFormat) !== null && _b !== void 0 ? _b : 'MM/DD/YYYY, hh:mm:ss A';
145
148
  if (typeof date === 'string') {
146
- return (0, moment_1.default)(date).format(logger.dataFormat);
149
+ return (0, moment_1.default)(date).format(dateFormat);
147
150
  }
148
151
  else {
149
- return date.format(logger.dataFormat);
152
+ return date.format(dateFormat);
150
153
  }
151
154
  ;
152
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stdout-writer.js","sourceRoot":"","sources":["../stdout-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdout-writer.js","sourceRoot":"","sources":["../stdout-writer.ts"],"names":[],"mappings":"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"}