@warlock.js/logger 1.0.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.
- package/README.md +381 -0
- package/cjs/LogChannel.d.ts +20 -0
- package/cjs/LogChannel.d.ts.map +1 -0
- package/cjs/LogChannel.js +14 -0
- package/cjs/LogChannel.js.map +1 -0
- package/cjs/channels/console-log.d.ts +17 -0
- package/cjs/channels/console-log.d.ts.map +1 -0
- package/cjs/channels/console-log.js +44 -0
- package/cjs/channels/console-log.js.map +1 -0
- package/cjs/channels/file-log.d.ts +202 -0
- package/cjs/channels/file-log.d.ts.map +1 -0
- package/cjs/channels/file-log.js +315 -0
- package/cjs/channels/file-log.js.map +1 -0
- package/cjs/channels/index.d.ts +4 -0
- package/cjs/channels/index.d.ts.map +1 -0
- package/cjs/channels/json-file-log.d.ts +25 -0
- package/cjs/channels/json-file-log.d.ts.map +1 -0
- package/cjs/channels/json-file-log.js +73 -0
- package/cjs/channels/json-file-log.js.map +1 -0
- package/cjs/index.d.ts +8 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -0
- package/cjs/logger.d.ts +74 -0
- package/cjs/logger.d.ts.map +1 -0
- package/cjs/logger.js +84 -0
- package/cjs/logger.js.map +1 -0
- package/cjs/types.d.ts +21 -0
- package/cjs/types.d.ts.map +1 -0
- package/cjs/utils.d.ts +6 -0
- package/cjs/utils.d.ts.map +1 -0
- package/cjs/utils.js +21 -0
- package/cjs/utils.js.map +1 -0
- package/esm/LogChannel.d.ts +20 -0
- package/esm/LogChannel.d.ts.map +1 -0
- package/esm/LogChannel.js +14 -0
- package/esm/LogChannel.js.map +1 -0
- package/esm/channels/console-log.d.ts +17 -0
- package/esm/channels/console-log.d.ts.map +1 -0
- package/esm/channels/console-log.js +44 -0
- package/esm/channels/console-log.js.map +1 -0
- package/esm/channels/file-log.d.ts +202 -0
- package/esm/channels/file-log.d.ts.map +1 -0
- package/esm/channels/file-log.js +315 -0
- package/esm/channels/file-log.js.map +1 -0
- package/esm/channels/index.d.ts +4 -0
- package/esm/channels/index.d.ts.map +1 -0
- package/esm/channels/json-file-log.d.ts +25 -0
- package/esm/channels/json-file-log.d.ts.map +1 -0
- package/esm/channels/json-file-log.js +73 -0
- package/esm/channels/json-file-log.js.map +1 -0
- package/esm/index.d.ts +8 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -0
- package/esm/logger.d.ts +74 -0
- package/esm/logger.d.ts.map +1 -0
- package/esm/logger.js +84 -0
- package/esm/logger.js.map +1 -0
- package/esm/types.d.ts +21 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/utils.d.ts +6 -0
- package/esm/utils.d.ts.map +1 -0
- package/esm/utils.js +21 -0
- package/esm/utils.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-log.d.ts","sourceRoot":"","sources":["../../src/channels/file-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
'use strict';var fs$1=require('@mongez/fs'),dayjs=require('dayjs'),fs=require('fs'),os=require('os'),LogChannel=require('../LogChannel.js'),path=require('path');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var dayjs__default=/*#__PURE__*/_interopDefault(dayjs);var fs__default=/*#__PURE__*/_interopDefault(fs);var path__default=/*#__PURE__*/_interopDefault(path);class FileLog extends LogChannel.LogChannel {
|
|
2
|
+
/**
|
|
3
|
+
* {@inheritdoc}
|
|
4
|
+
*/
|
|
5
|
+
name = "file";
|
|
6
|
+
/**
|
|
7
|
+
* Messages buffer
|
|
8
|
+
*/
|
|
9
|
+
messages = [];
|
|
10
|
+
/**
|
|
11
|
+
* Grouped messages
|
|
12
|
+
*/
|
|
13
|
+
groupedMessages = {};
|
|
14
|
+
/**
|
|
15
|
+
* Default channel configurations
|
|
16
|
+
*/
|
|
17
|
+
defaultConfigurations = {
|
|
18
|
+
storagePath: process.cwd() + "/storage/logs",
|
|
19
|
+
rotate: true,
|
|
20
|
+
name: "app",
|
|
21
|
+
extension: "log",
|
|
22
|
+
chunk: "single",
|
|
23
|
+
maxMessagesToWrite: 100,
|
|
24
|
+
// maxFileSize: 10 * 1024 * 1024, // 10MB
|
|
25
|
+
maxFileSize: 10,
|
|
26
|
+
get rotateFileName() {
|
|
27
|
+
return dayjs__default.default().format("DD-MM-YYYY");
|
|
28
|
+
},
|
|
29
|
+
dateFormat: {
|
|
30
|
+
date: "DD-MM-YYYY",
|
|
31
|
+
time: "HH:mm:ss",
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Last write time
|
|
36
|
+
*/
|
|
37
|
+
lastWriteTime = Date.now();
|
|
38
|
+
/**
|
|
39
|
+
* Channel configurations
|
|
40
|
+
*/
|
|
41
|
+
channelConfigurations = {};
|
|
42
|
+
/**
|
|
43
|
+
* A flag to determine if the file is being written
|
|
44
|
+
*/
|
|
45
|
+
isWriting = false;
|
|
46
|
+
/**
|
|
47
|
+
* Get config value
|
|
48
|
+
*/
|
|
49
|
+
config(key) {
|
|
50
|
+
return this.channelConfigurations[key] ?? this.defaultConfigurations[key];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Constructor
|
|
54
|
+
*/
|
|
55
|
+
constructor(configurations) {
|
|
56
|
+
super();
|
|
57
|
+
if (configurations) {
|
|
58
|
+
this.configurations(configurations);
|
|
59
|
+
}
|
|
60
|
+
this.init();
|
|
61
|
+
this.initMessageFlush();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check file size for file rotation
|
|
65
|
+
*/
|
|
66
|
+
async checkAndRotateFile(filePath = this.filePath) {
|
|
67
|
+
if (!this.config("rotate"))
|
|
68
|
+
return;
|
|
69
|
+
try {
|
|
70
|
+
const stats = await fs__default.default.promises.stat(filePath);
|
|
71
|
+
if (stats.size >= this.config("maxFileSize")) {
|
|
72
|
+
await this.rotateLogFile();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (error.code === "ENOENT") {
|
|
77
|
+
// File doesn't exist, this can be normal if it's a new file
|
|
78
|
+
console.log("Log file does not exist, will be created on first write.");
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.error("Error checking log file:", error);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Rotate log file
|
|
87
|
+
*/
|
|
88
|
+
async rotateLogFile() {
|
|
89
|
+
let fileName = `${this.fileName}-${this.config("rotateFileName")}-${Date.now()}`;
|
|
90
|
+
const extension = this.extension;
|
|
91
|
+
const rotatedFilePath = path__default.default.join(this.storagePath, `${fileName}.${extension}`);
|
|
92
|
+
await fs__default.default.promises.rename(this.filePath, rotatedFilePath).catch((error) => {
|
|
93
|
+
console.error("Error rotating file:", error);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Flush messages
|
|
98
|
+
*/
|
|
99
|
+
initMessageFlush() {
|
|
100
|
+
setInterval(() => {
|
|
101
|
+
if (this.messages.length > 0 &&
|
|
102
|
+
(this.messages.length >= this.maxMessagesToWrite ||
|
|
103
|
+
Date.now() - this.lastWriteTime > 5000)) {
|
|
104
|
+
this.writeMessagesToFile();
|
|
105
|
+
}
|
|
106
|
+
}, 5000); // Periodic check
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get file path
|
|
110
|
+
*/
|
|
111
|
+
get filePath() {
|
|
112
|
+
let fileName = this.fileName;
|
|
113
|
+
const extension = this.extension;
|
|
114
|
+
return path__default.default.join(this.storagePath, `${fileName}.${extension}`);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get max messages
|
|
118
|
+
*/
|
|
119
|
+
get maxMessagesToWrite() {
|
|
120
|
+
return this.config("maxMessagesToWrite");
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get file name
|
|
124
|
+
*/
|
|
125
|
+
get fileName() {
|
|
126
|
+
const debugLevel = this.config("chunk");
|
|
127
|
+
switch (debugLevel) {
|
|
128
|
+
case "single":
|
|
129
|
+
default:
|
|
130
|
+
return this.config("name");
|
|
131
|
+
case "daily":
|
|
132
|
+
return dayjs__default.default().format("DD-MM-YYYY");
|
|
133
|
+
case "hourly":
|
|
134
|
+
return dayjs__default.default().format("DD-MM-YYYY-HH");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get file extension
|
|
139
|
+
*/
|
|
140
|
+
get extension() {
|
|
141
|
+
return this.config("extension");
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get content
|
|
145
|
+
*/
|
|
146
|
+
get content() {
|
|
147
|
+
return this.messages.map((message) => message.content).join(os.EOL) + os.EOL;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get storage path
|
|
151
|
+
*/
|
|
152
|
+
get storagePath() {
|
|
153
|
+
return this.config("storagePath");
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* {@inheritdoc}
|
|
157
|
+
*/
|
|
158
|
+
async init() {
|
|
159
|
+
const logsDirectory = this.storagePath;
|
|
160
|
+
await fs$1.ensureDirectoryAsync(logsDirectory);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Set configurations
|
|
164
|
+
*/
|
|
165
|
+
configurations(configurations) {
|
|
166
|
+
this.channelConfigurations = {
|
|
167
|
+
...this.channelConfigurations,
|
|
168
|
+
...configurations,
|
|
169
|
+
dateFormat: {
|
|
170
|
+
...this.channelConfigurations.dateFormat,
|
|
171
|
+
...configurations.dateFormat,
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
return this;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* {@inheritdoc}
|
|
178
|
+
*/
|
|
179
|
+
async log(module, action, message, level) {
|
|
180
|
+
// check for debug mode
|
|
181
|
+
const allowedLevels = this.config("levels");
|
|
182
|
+
if (allowedLevels && !allowedLevels.includes(level))
|
|
183
|
+
return;
|
|
184
|
+
const filter = this.config("filter");
|
|
185
|
+
if (filter) {
|
|
186
|
+
const shouldBeLogged = filter({ level, module, action });
|
|
187
|
+
if (!shouldBeLogged)
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
const date = dayjs__default.default().format((this.channelConfigurations.dateFormat.date || "DD-MM-YYY") +
|
|
191
|
+
" " +
|
|
192
|
+
(this.channelConfigurations.dateFormat.time || "HH:mm:ss"));
|
|
193
|
+
let content = `[${date}] [${level}] [${module}][${action}]: `;
|
|
194
|
+
let stack = "";
|
|
195
|
+
// check if message is an instance of Error
|
|
196
|
+
if (message instanceof Error) {
|
|
197
|
+
// in that case we need to store the error message and stack trace
|
|
198
|
+
content += message.message + os.EOL;
|
|
199
|
+
content += `[trace]` + os.EOL;
|
|
200
|
+
content += message.stack;
|
|
201
|
+
stack = message.stack ?? "";
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
content += message;
|
|
205
|
+
}
|
|
206
|
+
this.messages.push({
|
|
207
|
+
content,
|
|
208
|
+
level,
|
|
209
|
+
date,
|
|
210
|
+
module,
|
|
211
|
+
action,
|
|
212
|
+
stack,
|
|
213
|
+
});
|
|
214
|
+
await this.checkIfMessagesShouldBeWritten(); // Immediate check on buffer size
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Check if messages should be written
|
|
218
|
+
*/
|
|
219
|
+
async checkIfMessagesShouldBeWritten() {
|
|
220
|
+
if (this.messages.length >= this.maxMessagesToWrite ||
|
|
221
|
+
Date.now() - this.lastWriteTime > 5000) {
|
|
222
|
+
await this.writeMessagesToFile();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Should be called after messages are saved
|
|
227
|
+
*/
|
|
228
|
+
onSave() {
|
|
229
|
+
this.messages = [];
|
|
230
|
+
this.groupedMessages = {};
|
|
231
|
+
this.isWriting = false;
|
|
232
|
+
this.lastWriteTime = Date.now();
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Check if messages should be grouped
|
|
236
|
+
*/
|
|
237
|
+
get messagedShouldBeGrouped() {
|
|
238
|
+
return Number(this.config("groupBy")?.length) > 0;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Write messages to the file
|
|
242
|
+
*/
|
|
243
|
+
async writeMessagesToFile() {
|
|
244
|
+
if (this.messages.length === 0 || this.isWriting)
|
|
245
|
+
return;
|
|
246
|
+
this.isWriting = true;
|
|
247
|
+
if (this.messagedShouldBeGrouped) {
|
|
248
|
+
return await this.writeGroupedMessagesToFile();
|
|
249
|
+
}
|
|
250
|
+
await this.checkAndRotateFile(); // Ensure we check file size before writing
|
|
251
|
+
try {
|
|
252
|
+
await this.write(this.filePath, this.content);
|
|
253
|
+
this.onSave();
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
console.error("Failed to write log:", error);
|
|
257
|
+
// Implement fallback logic here
|
|
258
|
+
this.isWriting = false;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Write grouped messages to the file
|
|
263
|
+
*/
|
|
264
|
+
async writeGroupedMessagesToFile() {
|
|
265
|
+
// first step, is to group the messages
|
|
266
|
+
this.prepareGroupedMessages();
|
|
267
|
+
// now each key in the grouped messages, represents the directory path that should extend the storage path
|
|
268
|
+
for (const key in this.groupedMessages) {
|
|
269
|
+
const directoryPath = path__default.default.join(this.storagePath, key);
|
|
270
|
+
await fs$1.ensureDirectoryAsync(directoryPath);
|
|
271
|
+
const filePath = path__default.default.join(directoryPath, `${this.fileName}.${this.extension}`);
|
|
272
|
+
await this.checkAndRotateFile(filePath); // Ensure we check file size before writing
|
|
273
|
+
const content = this.groupedMessages[key].map((message) => message.content).join(os.EOL) +
|
|
274
|
+
os.EOL;
|
|
275
|
+
console.log("content", content);
|
|
276
|
+
try {
|
|
277
|
+
await this.write(filePath, content);
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
console.error("Failed to write log:", error);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
this.onSave();
|
|
284
|
+
this.isWriting = false;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Prepare grouped messages
|
|
288
|
+
*/
|
|
289
|
+
prepareGroupedMessages() {
|
|
290
|
+
this.messages.forEach((message) => {
|
|
291
|
+
const key = this.config("groupBy")
|
|
292
|
+
.map((groupKey) => encodeURIComponent(message[groupKey]))
|
|
293
|
+
.join("/");
|
|
294
|
+
this.groupedMessages[key] = this.groupedMessages[key] || [];
|
|
295
|
+
this.groupedMessages[key].push(message);
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Start writing to the file
|
|
300
|
+
*/
|
|
301
|
+
async write(filePath, content) {
|
|
302
|
+
return new Promise((resolve, reject) => {
|
|
303
|
+
const writer = fs__default.default.createWriteStream(filePath, { flags: "a" });
|
|
304
|
+
writer.write(content, (error) => {
|
|
305
|
+
writer.end();
|
|
306
|
+
if (error) {
|
|
307
|
+
reject(error);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
resolve(true);
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
}exports.FileLog=FileLog;//# sourceMappingURL=file-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-log.js","sources":["../../src/channels/file-log.ts"],"sourcesContent":[null],"names":["LogChannel","dayjs","fs","path","EOL","ensureDirectoryAsync"],"mappings":"+XAkGM,MAAO,OAAQ,SAAQA,qBAAU,CAAA;AACrC;;AAEG;IACI,IAAI,GAAG,MAAM,CAAC;AAErB;;AAEG;IACO,QAAQ,GAAiB,EAAE,CAAC;AAEtC;;AAEG;IACO,eAAe,GAAiC,EAAE,CAAC;AAE7D;;AAEG;AACO,IAAA,qBAAqB,GAAkB;AAC/C,QAAA,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,eAAe;AAC5C,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,kBAAkB,EAAE,GAAG;;AAEvB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,IAAI,cAAc,GAAA;AAChB,YAAA,OAAOC,sBAAK,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACrC;AACD,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,UAAU;AACjB,SAAA;KACF,CAAC;AAEF;;AAEG;AACO,IAAA,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAErC;;AAEG;IACO,qBAAqB,GAAkB,EAAE,CAAC;AAEpD;;AAEG;IACO,SAAS,GAAG,KAAK,CAAC;AAE5B;;AAEG;AACO,IAAA,MAAM,CAAgC,GAAM,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;KAC3E;AAED;;AAEG;AACH,IAAA,WAAA,CAAmB,cAA8B,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;AAER,QAAA,IAAI,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AACrC,SAAA;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED;;AAEG;AACO,IAAA,MAAM,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA;AACzD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,OAAO;QAEnC,IAAI;YACF,MAAM,KAAK,GAAG,MAAMC,mBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,EAAE;AAC7C,gBAAA,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAC5B,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,KAAU,EAAE;AACnB,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;;AAE3B,gBAAA,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;AACzE,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAClD,aAAA;AACF,SAAA;KACF;AAED;;AAEG;AACO,IAAA,MAAM,aAAa,GAAA;AAC3B,QAAA,IAAI,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAC5C,gBAAgB,CACjB,CAAI,CAAA,EAAA,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAElB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAEjC,QAAA,MAAM,eAAe,GAAGC,qBAAI,CAAC,IAAI,CAC/B,IAAI,CAAC,WAAW,EAChB,GAAG,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAC3B,CAAC;AAEF,QAAA,MAAMD,mBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACvE,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;IACO,gBAAgB,GAAA;QACxB,WAAW,CAAC,MAAK;AACf,YAAA,IACE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;iBACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB;oBAC9C,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EACzC;gBACA,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,aAAA;AACH,SAAC,EAAE,IAAI,CAAC,CAAC;KACV;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAE7B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAEjC,QAAA,OAAOC,qBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC,CAAC;KAChE;AAED;;AAEG;AACH,IAAA,IAAc,kBAAkB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAE,CAAC;KAC3C;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC;AAEzC,QAAA,QAAQ,UAAU;AAChB,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;AAC9B,YAAA,KAAK,OAAO;AACV,gBAAA,OAAOF,sBAAK,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACtC,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAOA,sBAAK,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC1C,SAAA;KACF;AAED;;AAEG;AACH,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAE,CAAC;KAClC;AAED;;AAEG;AACH,IAAA,IAAc,OAAO,GAAA;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAACG,MAAG,CAAC,GAAGA,MAAG,CAAC;KACxE;AAED;;AAEG;AACH,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,CAAC;KACpC;AAED;;AAEG;AACO,IAAA,MAAM,IAAI,GAAA;AAClB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;AAEvC,QAAA,MAAMC,yBAAoB,CAAC,aAAa,CAAC,CAAC;KAC3C;AAED;;AAEG;AACI,IAAA,cAAc,CAAC,cAA6B,EAAA;QACjD,IAAI,CAAC,qBAAqB,GAAG;YAC3B,GAAG,IAAI,CAAC,qBAAqB;AAC7B,YAAA,GAAG,cAAc;AACjB,YAAA,UAAU,EAAE;AACV,gBAAA,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU;gBACxC,GAAG,cAAc,CAAC,UAAU;AAC7B,aAAA;SACF,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,GAAG,CACd,MAAc,EACd,MAAc,EACd,OAAY,EACZ,KAAe,EAAA;;QAGf,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAErC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEzD,YAAA,IAAI,CAAC,cAAc;gBAAE,OAAO;AAC7B,SAAA;AAED,QAAA,MAAM,IAAI,GAAGJ,sBAAK,EAAE,CAAC,MAAM,CACzB,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,IAAI,IAAI,WAAW;YACzD,GAAG;aACF,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,IAAI,IAAI,UAAU,CAAC,CAC9D,CAAC;QAEF,IAAI,OAAO,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA,GAAA,EAAM,KAAK,CAAA,GAAA,EAAM,MAAM,CAAA,EAAA,EAAK,MAAM,CAAA,GAAA,CAAK,CAAC;QAE9D,IAAI,KAAK,GAAG,EAAE,CAAC;;QAGf,IAAI,OAAO,YAAY,KAAK,EAAE;;AAE5B,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,GAAGG,MAAG,CAAC;AACjC,YAAA,OAAO,IAAI,CAAA,OAAA,CAAS,GAAGA,MAAG,CAAC;AAC3B,YAAA,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;AACzB,YAAA,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAC7B,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,OAAO,CAAC;AACpB,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,OAAO;YACP,KAAK;YACL,IAAI;YACJ,MAAM;YACN,MAAM;YACN,KAAK;AACN,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;KAC7C;AAED;;AAEG;AACO,IAAA,MAAM,8BAA8B,GAAA;QAC5C,IACE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB;YAC/C,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EACtC;AACA,YAAA,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAClC,SAAA;KACF;AAED;;AAEG;IACO,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;KACjC;AAED;;AAEG;AACH,IAAA,IAAc,uBAAuB,GAAA;AACnC,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;KACnD;AAED;;AAEG;AACO,IAAA,MAAM,mBAAmB,GAAA;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;AAEzD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,YAAA,OAAO,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAChD,SAAA;AAED,QAAA,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;;AAE7C,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,SAAA;KACF;AAED;;AAEG;AACO,IAAA,MAAM,0BAA0B,GAAA;;QAExC,IAAI,CAAC,sBAAsB,EAAE,CAAC;;AAG9B,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE;AACtC,YAAA,MAAM,aAAa,GAAGD,qBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAEvD,YAAA,MAAME,yBAAoB,CAAC,aAAa,CAAC,CAAC;AAE1C,YAAA,MAAM,QAAQ,GAAGF,qBAAI,CAAC,IAAI,CACxB,aAAa,EACb,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAA,CAAE,CACrC,CAAC;YAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAExC,MAAM,OAAO,GACX,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAACC,MAAG,CAAC;AACrE,gBAAAA,MAAG,CAAC;AAEN,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEhC,IAAI;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrC,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAA;AACF,SAAA;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;AAED;;AAEG;IACO,sBAAsB,GAAA;QAC9B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAChC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE;AAChC,iBAAA,GAAG,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACxD,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1C,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;AACO,IAAA,MAAM,KAAK,CAAC,QAAgB,EAAE,OAAe,EAAA;QACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,MAAM,GAAGF,mBAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE9D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;gBAC9B,MAAM,CAAC,GAAG,EAAE,CAAC;AACb,gBAAA,IAAI,KAAK,EAAE;oBACT,MAAM,CAAC,KAAK,CAAC,CAAC;AACf,iBAAA;AAAM,qBAAA;oBACL,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FileLog } from "./file-log";
|
|
2
|
+
import { LogContract } from "../types";
|
|
3
|
+
export declare class JSONFileLog extends FileLog implements LogContract {
|
|
4
|
+
/**
|
|
5
|
+
* {@inheritdoc}
|
|
6
|
+
*/
|
|
7
|
+
name: string;
|
|
8
|
+
/**
|
|
9
|
+
* Get file extension
|
|
10
|
+
*/
|
|
11
|
+
get extension(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Get initial file contents
|
|
14
|
+
*/
|
|
15
|
+
protected get initialFileContents(): Record<string, any>;
|
|
16
|
+
/**
|
|
17
|
+
* Write messages to the file
|
|
18
|
+
*/
|
|
19
|
+
protected writeMessagesToFile(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Write grouped messages to the file
|
|
22
|
+
*/
|
|
23
|
+
protected writeGroupedMessagesToFile(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=json-file-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-file-log.d.ts","sourceRoot":"","sources":["../../src/channels/json-file-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAOrC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,qBAAa,WAAY,SAAQ,OAAQ,YAAW,WAAW;IAC7D;;OAEG;IACI,IAAI,SAAc;IAEzB;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;OAEG;IACH,SAAS,KAAK,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAIvD;IAED;;OAEG;cACa,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCpD;;OAEG;cACa,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B5D"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';var fileLog=require('./file-log.js'),fs=require('@mongez/fs'),path=require('path');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var path__default=/*#__PURE__*/_interopDefault(path);class JSONFileLog extends fileLog.FileLog {
|
|
2
|
+
/**
|
|
3
|
+
* {@inheritdoc}
|
|
4
|
+
*/
|
|
5
|
+
name = "fileJson";
|
|
6
|
+
/**
|
|
7
|
+
* Get file extension
|
|
8
|
+
*/
|
|
9
|
+
get extension() {
|
|
10
|
+
return "json";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get initial file contents
|
|
14
|
+
*/
|
|
15
|
+
get initialFileContents() {
|
|
16
|
+
return {
|
|
17
|
+
messages: this.messages,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Write messages to the file
|
|
22
|
+
*/
|
|
23
|
+
async writeMessagesToFile() {
|
|
24
|
+
if (this.messages.length === 0 || this.isWriting)
|
|
25
|
+
return;
|
|
26
|
+
this.isWriting = true;
|
|
27
|
+
if (this.messagedShouldBeGrouped) {
|
|
28
|
+
return await this.writeGroupedMessagesToFile();
|
|
29
|
+
}
|
|
30
|
+
await this.checkAndRotateFile(); // Ensure file rotation is handled
|
|
31
|
+
let fileContents;
|
|
32
|
+
try {
|
|
33
|
+
fileContents = await fs.getJsonFileAsync(this.filePath);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.error("Error reading log file, reinitializing:", error);
|
|
37
|
+
fileContents = { messages: [] }; // Reinitialize the file if corrupted
|
|
38
|
+
}
|
|
39
|
+
fileContents.messages.push(...this.messages);
|
|
40
|
+
try {
|
|
41
|
+
await fs.putJsonFileAsync(this.filePath, fileContents, { spaces: 2 });
|
|
42
|
+
this.onSave();
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error("Failed to write log:", error);
|
|
46
|
+
// Implement fallback logic here
|
|
47
|
+
this.isWriting = false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Write grouped messages to the file
|
|
52
|
+
*/
|
|
53
|
+
async writeGroupedMessagesToFile() {
|
|
54
|
+
// first step, is to group the messages
|
|
55
|
+
this.prepareGroupedMessages();
|
|
56
|
+
// now each key in the grouped messages, represents the directory path that should extend the storage path
|
|
57
|
+
for (const key in this.groupedMessages) {
|
|
58
|
+
const directoryPath = path__default.default.join(this.storagePath, key);
|
|
59
|
+
await fs.ensureDirectoryAsync(directoryPath);
|
|
60
|
+
const filePath = path__default.default.join(directoryPath, `${this.fileName}.${this.extension}`);
|
|
61
|
+
await this.checkAndRotateFile(filePath); // Ensure we check file size before writing
|
|
62
|
+
const content = this.groupedMessages[key];
|
|
63
|
+
try {
|
|
64
|
+
await fs.putJsonFileAsync(filePath, content, { spaces: 2 });
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error("Failed to write log:", error);
|
|
68
|
+
this.isWriting = false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
this.onSave();
|
|
72
|
+
}
|
|
73
|
+
}exports.JSONFileLog=JSONFileLog;//# sourceMappingURL=json-file-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-file-log.js","sources":["../../src/channels/json-file-log.ts"],"sourcesContent":[null],"names":["FileLog","getJsonFileAsync","putJsonFileAsync","path","ensureDirectoryAsync"],"mappings":"sNASM,MAAO,WAAY,SAAQA,eAAO,CAAA;AACtC;;AAEG;IACI,IAAI,GAAG,UAAU,CAAC;AAEzB;;AAEG;AACH,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;AAEG;AACH,IAAA,IAAc,mBAAmB,GAAA;QAC/B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;KACH;AAED;;AAEG;AACO,IAAA,MAAM,mBAAmB,GAAA;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;AAEzD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,YAAA,OAAO,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAChD,SAAA;AAED,QAAA,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAEhC,QAAA,IAAI,YAAY,CAAC;QACjB,IAAI;YACF,YAAY,GAAG,MAAMC,mBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtD,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;YAChE,YAAY,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACjC,SAAA;QAED,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI;AACF,YAAA,MAAMC,mBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAEnE,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;;AAE7C,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,SAAA;KACF;AAED;;AAEG;AACO,IAAA,MAAM,0BAA0B,GAAA;;QAExC,IAAI,CAAC,sBAAsB,EAAE,CAAC;;AAG9B,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE;AACtC,YAAA,MAAM,aAAa,GAAGC,qBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAEvD,YAAA,MAAMC,uBAAoB,CAAC,aAAa,CAAC,CAAC;AAE1C,YAAA,MAAM,QAAQ,GAAGD,qBAAI,CAAC,IAAI,CACxB,aAAa,EACb,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAA,CAAE,CACrC,CAAC;YAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAExC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAE1C,IAAI;AACF,gBAAA,MAAMD,mBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,aAAA;AACF,SAAA;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AACF"}
|
package/cjs/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,eAAe,MAAM,CAAC"}
|
package/cjs/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var logger=require('./logger.js'),consoleLog=require('./channels/console-log.js'),fileLog=require('./channels/file-log.js'),jsonFileLog=require('./channels/json-file-log.js'),LogChannel=require('./LogChannel.js'),utils=require('./utils.js');exports.Logger=logger.Logger;exports.default=logger.default;exports.log=logger.log;exports.ConsoleLog=consoleLog.ConsoleLog;exports.FileLog=fileLog.FileLog;exports.JSONFileLog=jsonFileLog.JSONFileLog;exports.LogChannel=LogChannel.LogChannel;exports.captureAnyUnhandledRejection=utils.captureAnyUnhandledRejection;exports.clearMessage=utils.clearMessage;//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/cjs/logger.d.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { LogChannel } from "./LogChannel";
|
|
2
|
+
import { LogLevel } from "./types";
|
|
3
|
+
export declare class Logger {
|
|
4
|
+
/**
|
|
5
|
+
* Current channel
|
|
6
|
+
*/
|
|
7
|
+
protected channels: LogChannel[];
|
|
8
|
+
/**
|
|
9
|
+
* Add a new channel
|
|
10
|
+
*/
|
|
11
|
+
addChannel(channel: LogChannel): this;
|
|
12
|
+
/**
|
|
13
|
+
* Set base configurations
|
|
14
|
+
*/
|
|
15
|
+
configure(config: {
|
|
16
|
+
channels: LogChannel[];
|
|
17
|
+
}): this;
|
|
18
|
+
/**
|
|
19
|
+
* Set channels
|
|
20
|
+
*/
|
|
21
|
+
setChannels(channels: LogChannel[]): this;
|
|
22
|
+
/**
|
|
23
|
+
* Make log
|
|
24
|
+
*/
|
|
25
|
+
log(module: string, action: string, message: any, level?: LogLevel): Promise<this>;
|
|
26
|
+
/**
|
|
27
|
+
* Make debug log
|
|
28
|
+
*/
|
|
29
|
+
debug(module: string, action: string, message?: any): Promise<this>;
|
|
30
|
+
/**
|
|
31
|
+
* Make info log
|
|
32
|
+
*/
|
|
33
|
+
info(module: string, action: string, message?: any): Promise<this>;
|
|
34
|
+
/**
|
|
35
|
+
* Make warn log
|
|
36
|
+
*/
|
|
37
|
+
warn(module: string, action: string, message?: any): Promise<this>;
|
|
38
|
+
/**
|
|
39
|
+
* Make error log
|
|
40
|
+
*/
|
|
41
|
+
error(module: string, action: string, message?: any): Promise<this>;
|
|
42
|
+
/**
|
|
43
|
+
* Make success log
|
|
44
|
+
*/
|
|
45
|
+
success(module: string, action: string, message?: any): Promise<this>;
|
|
46
|
+
/**
|
|
47
|
+
* Get channel by name
|
|
48
|
+
*/
|
|
49
|
+
channel(name: string): LogChannel;
|
|
50
|
+
}
|
|
51
|
+
declare const logger: Logger;
|
|
52
|
+
export default logger;
|
|
53
|
+
export interface Log {
|
|
54
|
+
(module: string, action: string, message: any, level: LogLevel): Promise<Logger>;
|
|
55
|
+
/**
|
|
56
|
+
* Make info log
|
|
57
|
+
*/
|
|
58
|
+
info(module: string, action: string, message: any): Promise<Logger>;
|
|
59
|
+
/**
|
|
60
|
+
* Make debug log
|
|
61
|
+
*/
|
|
62
|
+
debug(module: string, action: string, message: any): Promise<Logger>;
|
|
63
|
+
warn(module: string, action: string, message: any): Promise<Logger>;
|
|
64
|
+
/**
|
|
65
|
+
* Make error log
|
|
66
|
+
*/
|
|
67
|
+
error(module: string, action: string, message: any): Promise<Logger>;
|
|
68
|
+
/**
|
|
69
|
+
* Make success log
|
|
70
|
+
*/
|
|
71
|
+
success(module: string, action: string, message: any): Promise<Logger>;
|
|
72
|
+
}
|
|
73
|
+
export declare const log: Log;
|
|
74
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,qBAAa,MAAM;IACjB;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAM;IAEtC;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,UAAU;IAMrC;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;KAAE;IAMnD;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE;IAMzC;;OAEG;IACU,GAAG,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EACZ,KAAK,GAAE,QAAiB;IAa1B;;OAEG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ;IAI9D;;OAEG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ;IAI7D;;OAEG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ;IAI7D;;OAEG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ;IAI9D;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ;IAIhE;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM;CAG5B;AAED,QAAA,MAAM,MAAM,QAAe,CAAC;AAE5B,eAAe,MAAM,CAAC;AAEtB,MAAM,WAAW,GAAG;IAClB,CACE,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxE;AAED,eAAO,MAAM,GAAG,EAAE,GAOjB,CAAC"}
|
package/cjs/logger.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use strict';var utils=require('./utils.js');class Logger {
|
|
2
|
+
/**
|
|
3
|
+
* Current channel
|
|
4
|
+
*/
|
|
5
|
+
channels = [];
|
|
6
|
+
/**
|
|
7
|
+
* Add a new channel
|
|
8
|
+
*/
|
|
9
|
+
addChannel(channel) {
|
|
10
|
+
this.channels.push(channel);
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Set base configurations
|
|
15
|
+
*/
|
|
16
|
+
configure(config) {
|
|
17
|
+
this.channels = config.channels;
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Set channels
|
|
22
|
+
*/
|
|
23
|
+
setChannels(channels) {
|
|
24
|
+
this.channels = channels;
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Make log
|
|
29
|
+
*/
|
|
30
|
+
async log(module, action, message, level = "info") {
|
|
31
|
+
for (const channel of this.channels) {
|
|
32
|
+
if (channel.terminal === false) {
|
|
33
|
+
message = utils.clearMessage(message);
|
|
34
|
+
}
|
|
35
|
+
channel.log(module, action, message, level);
|
|
36
|
+
}
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Make debug log
|
|
41
|
+
*/
|
|
42
|
+
debug(module, action, message = "") {
|
|
43
|
+
return this.log(module, action, message, "debug");
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Make info log
|
|
47
|
+
*/
|
|
48
|
+
info(module, action, message = "") {
|
|
49
|
+
return this.log(module, action, message, "info");
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Make warn log
|
|
53
|
+
*/
|
|
54
|
+
warn(module, action, message = "") {
|
|
55
|
+
return this.log(module, action, message, "warn");
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Make error log
|
|
59
|
+
*/
|
|
60
|
+
error(module, action, message = "") {
|
|
61
|
+
return this.log(module, action, message, "error");
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Make success log
|
|
65
|
+
*/
|
|
66
|
+
success(module, action, message = "") {
|
|
67
|
+
return this.log(module, action, message, "success");
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get channel by name
|
|
71
|
+
*/
|
|
72
|
+
channel(name) {
|
|
73
|
+
return this.channels.find((channel) => channel.name === name);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const logger = new Logger();
|
|
77
|
+
const log = (module, action, message, level) => {
|
|
78
|
+
return logger.log(module, action, message, level);
|
|
79
|
+
};
|
|
80
|
+
log.info = logger.info.bind(logger);
|
|
81
|
+
log.debug = logger.debug.bind(logger);
|
|
82
|
+
log.warn = logger.warn.bind(logger);
|
|
83
|
+
log.error = logger.error.bind(logger);
|
|
84
|
+
log.success = logger.success.bind(logger);exports.Logger=Logger;exports.default=logger;exports.log=log;//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sources":["../src/logger.ts"],"sourcesContent":[null],"names":["clearMessage"],"mappings":"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"}
|
package/cjs/types.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type LogLevel = "debug" | "info" | "warn" | "error" | "success";
|
|
2
|
+
export type DebugMode = "daily" | "monthly" | "yearly" | "hourly";
|
|
3
|
+
export interface LogContract {
|
|
4
|
+
/**
|
|
5
|
+
* Channel name
|
|
6
|
+
*/
|
|
7
|
+
name: string;
|
|
8
|
+
/**
|
|
9
|
+
* Channel description
|
|
10
|
+
*/
|
|
11
|
+
description?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Determine if channel is logging in terminal
|
|
14
|
+
*/
|
|
15
|
+
terminal?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Log the given message
|
|
18
|
+
*/
|
|
19
|
+
log(module: string, action: string, message: any, level: LogLevel): void | Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=types.d.ts.map
|