@spinajs/log 2.0.180 → 2.0.181

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 (45) hide show
  1. package/lib/cjs/bootstrap.d.ts +4 -4
  2. package/lib/cjs/bootstrap.js +55 -55
  3. package/lib/cjs/bootstrap.js.map +1 -1
  4. package/lib/cjs/index.d.ts +4 -4
  5. package/lib/cjs/index.js +20 -20
  6. package/lib/cjs/log.d.ts +29 -29
  7. package/lib/cjs/log.js +161 -161
  8. package/lib/cjs/log.js.map +1 -1
  9. package/lib/cjs/schemas/log.configuration.d.ts +87 -87
  10. package/lib/cjs/schemas/log.configuration.js +100 -100
  11. package/lib/cjs/targets/BlackHoleTarget.d.ts +7 -7
  12. package/lib/cjs/targets/BlackHoleTarget.js +24 -24
  13. package/lib/cjs/targets/BlackHoleTarget.js.map +1 -1
  14. package/lib/cjs/targets/ColoredConsoleTarget.d.ts +50 -50
  15. package/lib/cjs/targets/ColoredConsoleTarget.js +70 -70
  16. package/lib/cjs/targets/ColoredConsoleTarget.js.map +1 -1
  17. package/lib/cjs/targets/FileTarget.d.ts +29 -29
  18. package/lib/cjs/targets/FileTarget.js +263 -263
  19. package/lib/cjs/targets/FileTarget.js.map +1 -1
  20. package/lib/cjs/targets/index.d.ts +3 -3
  21. package/lib/cjs/targets/index.js +19 -19
  22. package/lib/mjs/bootstrap.d.ts +4 -4
  23. package/lib/mjs/bootstrap.js +49 -49
  24. package/lib/mjs/bootstrap.js.map +1 -1
  25. package/lib/mjs/index.d.ts +4 -4
  26. package/lib/mjs/index.js +4 -4
  27. package/lib/mjs/log.d.ts +29 -29
  28. package/lib/mjs/log.js +155 -155
  29. package/lib/mjs/log.js.map +1 -1
  30. package/lib/mjs/schemas/log.configuration.d.ts +87 -87
  31. package/lib/mjs/schemas/log.configuration.js +98 -98
  32. package/lib/mjs/targets/BlackHoleTarget.d.ts +7 -7
  33. package/lib/mjs/targets/BlackHoleTarget.js +21 -21
  34. package/lib/mjs/targets/BlackHoleTarget.js.map +1 -1
  35. package/lib/mjs/targets/ColoredConsoleTarget.d.ts +50 -50
  36. package/lib/mjs/targets/ColoredConsoleTarget.js +64 -64
  37. package/lib/mjs/targets/ColoredConsoleTarget.js.map +1 -1
  38. package/lib/mjs/targets/FileTarget.d.ts +29 -29
  39. package/lib/mjs/targets/FileTarget.js +234 -234
  40. package/lib/mjs/targets/FileTarget.js.map +1 -1
  41. package/lib/mjs/targets/index.d.ts +3 -3
  42. package/lib/mjs/targets/index.js +3 -3
  43. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  44. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  45. package/package.json +6 -6
@@ -1,264 +1,264 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __metadata = (this && this.__metadata) || function (k, v) {
32
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.FileTarget = void 0;
39
- /* eslint-disable security/detect-object-injection */
40
- const os_1 = require("os");
41
- const fs_1 = __importDefault(require("fs"));
42
- const path = __importStar(require("path"));
43
- const glob_1 = __importDefault(require("glob"));
44
- const zlib = __importStar(require("zlib"));
45
- const stream_1 = require("stream");
46
- const configuration_1 = require("@spinajs/configuration");
47
- const exceptions_1 = require("@spinajs/exceptions");
48
- const di_1 = require("@spinajs/di");
49
- const log_common_1 = require("@spinajs/log-common");
50
- const lodash_1 = __importDefault(require("lodash"));
51
- var FileTargetStatus;
52
- (function (FileTargetStatus) {
53
- FileTargetStatus[FileTargetStatus["WRITTING"] = 0] = "WRITTING";
54
- FileTargetStatus[FileTargetStatus["PENDING"] = 1] = "PENDING";
55
- FileTargetStatus[FileTargetStatus["IDLE"] = 2] = "IDLE";
56
- })(FileTargetStatus || (FileTargetStatus = {}));
57
- // we mark per instance check becouse we can have multiple file targes
58
- // for different files/paths/logs but we dont want to create every time writer for same.
59
- let FileTarget = class FileTarget extends log_common_1.LogTarget {
60
- constructor() {
61
- super(...arguments);
62
- this.Buffer = [];
63
- this.WriteBuffer = [];
64
- this.Status = FileTargetStatus.IDLE;
65
- this.ArchiveStatus = FileTargetStatus.IDLE;
66
- }
67
- __checkInstance__(creationOptions) {
68
- return this.Options.name === creationOptions[0].name;
69
- }
70
- resolve() {
71
- this.Options.options = Object.assign({
72
- compress: true,
73
- maxSize: 1024 * 1024,
74
- maxArchiveFiles: 5,
75
- archiveInterval: 3 * 60,
76
- }, this.Options.options);
77
- this.LogDirPath = path.dirname(path.resolve((0, configuration_1.format)(null, this.Options.options.path)));
78
- this.ArchiveDirPath = this.Options.options.archivePath ? path.resolve((0, configuration_1.format)(null, this.Options.options.archivePath)) : this.LogDirPath;
79
- if (!this.LogDirPath) {
80
- throw new exceptions_1.InvalidOption("Missing LogDirPath log option");
81
- }
82
- if (!fs_1.default.existsSync(this.LogDirPath)) {
83
- fs_1.default.mkdirSync(this.LogDirPath, { recursive: true });
84
- }
85
- if (this.ArchiveDirPath) {
86
- if (!fs_1.default.existsSync(this.ArchiveDirPath)) {
87
- fs_1.default.mkdirSync(this.ArchiveDirPath, { recursive: true });
88
- }
89
- }
90
- // flush all buffered messages at least once per second
91
- // we do this, becouse buffer can not be filled
92
- // and we could wait unknown amount of time before messages are written to file
93
- this.FlushTimer = setInterval(() => {
94
- // do not flush, if we already writting to file
95
- if (this.Status !== FileTargetStatus.IDLE && this.ArchiveStatus !== FileTargetStatus.IDLE) {
96
- return;
97
- }
98
- this.WriteBuffer = [...this.WriteBuffer, ...this.Buffer];
99
- this.Buffer = [];
100
- setImmediate(() => {
101
- this.flush();
102
- });
103
- }, 1000);
104
- // every 3 minutes try to archive log files
105
- this.ArchiveTimer = setInterval(() => {
106
- // do not archive if we already doing it
107
- if (this.Status !== FileTargetStatus.IDLE && this.ArchiveStatus !== FileTargetStatus.IDLE) {
108
- return;
109
- }
110
- this.ArchiveStatus = FileTargetStatus.PENDING;
111
- // at end of nodejs event loop
112
- setImmediate(() => {
113
- this.archive();
114
- });
115
- }, this.Options.options.archiveInterval * 1000);
116
- super.resolve();
117
- }
118
- flush() {
119
- if (this.WriteBuffer.length === 0) {
120
- this.Status = FileTargetStatus.IDLE;
121
- return;
122
- }
123
- this.Status = FileTargetStatus.WRITTING;
124
- // we calculate log path every time to allow for
125
- // dynamic path creation eg. based on timestamp
126
- const logFileName = (0, configuration_1.format)({ logger: this.Options.name }, path.basename(this.Options.options.path));
127
- const logPath = path.join(this.LogDirPath, logFileName);
128
- fs_1.default.appendFile(logPath, this.WriteBuffer.join(os_1.EOL) + os_1.EOL, (err) => {
129
- // log error message to others if applicable eg. console
130
- if (err) {
131
- this.Log.error(err, `Cannot write log messages to file target at path ${logPath}`);
132
- }
133
- this.Log.trace(`Wrote buffered messages to log file at path ${logPath}, buffer size: ${this.Options.options.maxBufferSize}`);
134
- this.WriteBuffer = [];
135
- this.Status = FileTargetStatus.IDLE;
136
- });
137
- }
138
- async dispose() {
139
- // stop archiving
140
- clearInterval(this.ArchiveTimer);
141
- // stop flush timer
142
- clearInterval(this.FlushTimer);
143
- // write all messages from buffer
144
- this.WriteBuffer = [...this.WriteBuffer, ...this.Buffer];
145
- this.flush();
146
- }
147
- async write(data) {
148
- if (!this.Options.enabled) {
149
- return;
150
- }
151
- const lEntry = (0, configuration_1.format)(data.Variables, this.Options.layout);
152
- this.Buffer.push(lEntry);
153
- // if we already writting, skip buffer check & write to file
154
- // wait until write is finished
155
- if (this.Status !== FileTargetStatus.IDLE || this.ArchiveStatus !== FileTargetStatus.IDLE) {
156
- return;
157
- }
158
- if (this.Buffer.length >= this.Options.options.maxBufferSize) {
159
- this.Status = FileTargetStatus.PENDING;
160
- this.WriteBuffer = [...this.WriteBuffer, ...this.Buffer];
161
- this.Buffer = [];
162
- // write at end of nodejs event loop all buffered messages at once
163
- setImmediate(() => {
164
- this.flush();
165
- });
166
- }
167
- }
168
- archive() {
169
- const { ext } = path.parse(path.basename(this.Options.options.path));
170
- const aFiles = glob_1.default
171
- .sync(path.join(this.ArchiveDirPath, `archived_*{${ext},.gzip}`).replace(/\\/g, "/"))
172
- .map((f) => {
173
- return {
174
- name: f,
175
- stat: fs_1.default.statSync(f),
176
- };
177
- })
178
- .sort((a, b) => a.stat.mtime.getTime() - b.stat.mtime.getTime());
179
- const lFiles = glob_1.default
180
- .sync(path.join(this.LogDirPath, `*${ext}`).replace(/\\/g, "/"))
181
- .map((f) => {
182
- return {
183
- name: f,
184
- stat: fs_1.default.statSync(f),
185
- };
186
- })
187
- .sort((a, b) => a.stat.mtime.getTime() - b.stat.mtime.getTime());
188
- // clear archived files above limit
189
- if (aFiles.length > this.Options.options.maxArchiveFiles) {
190
- for (let i = 0; i < aFiles.length - this.Options.options.maxArchiveFiles; i++) {
191
- fs_1.default.unlink(aFiles[i].name, (err) => {
192
- if (err) {
193
- this.Log.error(err, `Cannot delete archived file at path ${aFiles[i - 1].name}`);
194
- }
195
- else {
196
- this.Log.info(`Deleted archived file at path ${aFiles[i].name}`);
197
- }
198
- });
199
- }
200
- }
201
- // now move log files that are above limited file size or old
202
- const filesToArchive = lFiles.filter((x) => {
203
- return x.stat.size > this.Options.options.maxSize || lFiles.indexOf(x) <= lFiles.length - 2;
204
- });
205
- if (filesToArchive.length === 0) {
206
- this.ArchiveStatus = FileTargetStatus.IDLE;
207
- }
208
- for (let i = 0; i < filesToArchive.length; i++) {
209
- const { name, ext } = path.parse(path.basename(lFiles[i].name));
210
- // get number of files with same name, eg. during a day, multiple log files can be produced
211
- const lArchiFiles = glob_1.default.sync(path.join(this.ArchiveDirPath, `archived_${name}*{${ext},.gzip}`).replace(/\\/g, "/"));
212
- const fIndex = lodash_1.default.max(lArchiFiles.map((f) => {
213
- const result = [...f.matchAll(/(\d+)(\.txt|\.gzip)/gm)];
214
- if (result && result.length > 0) {
215
- return parseInt(result[0][1]);
216
- }
217
- return 0;
218
- }));
219
- const archPath = path.join(this.ArchiveDirPath, `archived_${name}_${(fIndex ?? 0) + 1}${ext}`);
220
- fs_1.default.rename(lFiles[i].name, archPath, (err) => {
221
- if (err) {
222
- this.Log.error(err, `Cannot move log file ${name} to archive at path ${archPath}`);
223
- return;
224
- }
225
- if (this.Options.options.compress) {
226
- this.Log.trace(`Compressing archive log at path ${archPath}`);
227
- const zippedPath = path.join(this.ArchiveDirPath, `archived_${name}_${lArchiFiles.length + 1}${ext}.gzip`);
228
- const zip = zlib.createGzip();
229
- const read = fs_1.default.createReadStream(archPath);
230
- const write = fs_1.default.createWriteStream(zippedPath);
231
- (0, stream_1.pipeline)(read, zip, write, (err) => {
232
- if (err) {
233
- this.Log.error(err, `Cannot compress archived file at path ${archPath}`);
234
- fs_1.default.unlink(zippedPath, () => {
235
- return;
236
- });
237
- return;
238
- }
239
- this.Log.info(`Succesyfully compressed archive log at path ${zippedPath}`);
240
- fs_1.default.unlink(archPath, (err) => {
241
- if (err) {
242
- this.Log.error(err, `Cannot delete archived log after compression at path ${archPath}`);
243
- }
244
- });
245
- this.ArchiveStatus = FileTargetStatus.IDLE;
246
- });
247
- }
248
- else {
249
- this.ArchiveStatus = FileTargetStatus.IDLE;
250
- }
251
- });
252
- }
253
- }
254
- };
255
- __decorate([
256
- (0, log_common_1.Logger)("LogFileTarget"),
257
- __metadata("design:type", log_common_1.Log)
258
- ], FileTarget.prototype, "Log", void 0);
259
- FileTarget = __decorate([
260
- (0, di_1.PerInstanceCheck)(),
261
- (0, di_1.Injectable)("FileTarget")
262
- ], FileTarget);
263
- exports.FileTarget = FileTarget;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.FileTarget = void 0;
39
+ /* eslint-disable security/detect-object-injection */
40
+ const os_1 = require("os");
41
+ const fs_1 = __importDefault(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const glob_1 = __importDefault(require("glob"));
44
+ const zlib = __importStar(require("zlib"));
45
+ const stream_1 = require("stream");
46
+ const configuration_1 = require("@spinajs/configuration");
47
+ const exceptions_1 = require("@spinajs/exceptions");
48
+ const di_1 = require("@spinajs/di");
49
+ const log_common_1 = require("@spinajs/log-common");
50
+ const lodash_1 = __importDefault(require("lodash"));
51
+ var FileTargetStatus;
52
+ (function (FileTargetStatus) {
53
+ FileTargetStatus[FileTargetStatus["WRITTING"] = 0] = "WRITTING";
54
+ FileTargetStatus[FileTargetStatus["PENDING"] = 1] = "PENDING";
55
+ FileTargetStatus[FileTargetStatus["IDLE"] = 2] = "IDLE";
56
+ })(FileTargetStatus || (FileTargetStatus = {}));
57
+ // we mark per instance check becouse we can have multiple file targes
58
+ // for different files/paths/logs but we dont want to create every time writer for same.
59
+ let FileTarget = class FileTarget extends log_common_1.LogTarget {
60
+ constructor() {
61
+ super(...arguments);
62
+ this.Buffer = [];
63
+ this.WriteBuffer = [];
64
+ this.Status = FileTargetStatus.IDLE;
65
+ this.ArchiveStatus = FileTargetStatus.IDLE;
66
+ }
67
+ __checkInstance__(creationOptions) {
68
+ return this.Options.name === creationOptions[0].name;
69
+ }
70
+ resolve() {
71
+ this.Options.options = Object.assign({
72
+ compress: true,
73
+ maxSize: 1024 * 1024,
74
+ maxArchiveFiles: 5,
75
+ archiveInterval: 3 * 60,
76
+ }, this.Options.options);
77
+ this.LogDirPath = path.dirname(path.resolve((0, configuration_1.format)(null, this.Options.options.path)));
78
+ this.ArchiveDirPath = this.Options.options.archivePath ? path.resolve((0, configuration_1.format)(null, this.Options.options.archivePath)) : this.LogDirPath;
79
+ if (!this.LogDirPath) {
80
+ throw new exceptions_1.InvalidOption("Missing LogDirPath log option");
81
+ }
82
+ if (!fs_1.default.existsSync(this.LogDirPath)) {
83
+ fs_1.default.mkdirSync(this.LogDirPath, { recursive: true });
84
+ }
85
+ if (this.ArchiveDirPath) {
86
+ if (!fs_1.default.existsSync(this.ArchiveDirPath)) {
87
+ fs_1.default.mkdirSync(this.ArchiveDirPath, { recursive: true });
88
+ }
89
+ }
90
+ // flush all buffered messages at least once per second
91
+ // we do this, becouse buffer can not be filled
92
+ // and we could wait unknown amount of time before messages are written to file
93
+ this.FlushTimer = setInterval(() => {
94
+ // do not flush, if we already writting to file
95
+ if (this.Status !== FileTargetStatus.IDLE && this.ArchiveStatus !== FileTargetStatus.IDLE) {
96
+ return;
97
+ }
98
+ this.WriteBuffer = [...this.WriteBuffer, ...this.Buffer];
99
+ this.Buffer = [];
100
+ setImmediate(() => {
101
+ this.flush();
102
+ });
103
+ }, 1000);
104
+ // every 3 minutes try to archive log files
105
+ this.ArchiveTimer = setInterval(() => {
106
+ // do not archive if we already doing it
107
+ if (this.Status !== FileTargetStatus.IDLE && this.ArchiveStatus !== FileTargetStatus.IDLE) {
108
+ return;
109
+ }
110
+ this.ArchiveStatus = FileTargetStatus.PENDING;
111
+ // at end of nodejs event loop
112
+ setImmediate(() => {
113
+ this.archive();
114
+ });
115
+ }, this.Options.options.archiveInterval * 1000);
116
+ super.resolve();
117
+ }
118
+ flush() {
119
+ if (this.WriteBuffer.length === 0) {
120
+ this.Status = FileTargetStatus.IDLE;
121
+ return;
122
+ }
123
+ this.Status = FileTargetStatus.WRITTING;
124
+ // we calculate log path every time to allow for
125
+ // dynamic path creation eg. based on timestamp
126
+ const logFileName = (0, configuration_1.format)({ logger: this.Options.name }, path.basename(this.Options.options.path));
127
+ const logPath = path.join(this.LogDirPath, logFileName);
128
+ fs_1.default.appendFile(logPath, this.WriteBuffer.join(os_1.EOL) + os_1.EOL, (err) => {
129
+ // log error message to others if applicable eg. console
130
+ if (err) {
131
+ this.Log.error(err, `Cannot write log messages to file target at path ${logPath}`);
132
+ }
133
+ this.Log.trace(`Wrote buffered messages to log file at path ${logPath}, buffer size: ${this.Options.options.maxBufferSize}`);
134
+ this.WriteBuffer = [];
135
+ this.Status = FileTargetStatus.IDLE;
136
+ });
137
+ }
138
+ async dispose() {
139
+ // stop archiving
140
+ clearInterval(this.ArchiveTimer);
141
+ // stop flush timer
142
+ clearInterval(this.FlushTimer);
143
+ // write all messages from buffer
144
+ this.WriteBuffer = [...this.WriteBuffer, ...this.Buffer];
145
+ this.flush();
146
+ }
147
+ async write(data) {
148
+ if (!this.Options.enabled) {
149
+ return;
150
+ }
151
+ const lEntry = (0, configuration_1.format)(data.Variables, this.Options.layout);
152
+ this.Buffer.push(lEntry);
153
+ // if we already writting, skip buffer check & write to file
154
+ // wait until write is finished
155
+ if (this.Status !== FileTargetStatus.IDLE || this.ArchiveStatus !== FileTargetStatus.IDLE) {
156
+ return;
157
+ }
158
+ if (this.Buffer.length >= this.Options.options.maxBufferSize) {
159
+ this.Status = FileTargetStatus.PENDING;
160
+ this.WriteBuffer = [...this.WriteBuffer, ...this.Buffer];
161
+ this.Buffer = [];
162
+ // write at end of nodejs event loop all buffered messages at once
163
+ setImmediate(() => {
164
+ this.flush();
165
+ });
166
+ }
167
+ }
168
+ archive() {
169
+ const { ext } = path.parse(path.basename(this.Options.options.path));
170
+ const aFiles = glob_1.default
171
+ .sync(path.join(this.ArchiveDirPath, `archived_*{${ext},.gzip}`).replace(/\\/g, "/"))
172
+ .map((f) => {
173
+ return {
174
+ name: f,
175
+ stat: fs_1.default.statSync(f),
176
+ };
177
+ })
178
+ .sort((a, b) => a.stat.mtime.getTime() - b.stat.mtime.getTime());
179
+ const lFiles = glob_1.default
180
+ .sync(path.join(this.LogDirPath, `*${ext}`).replace(/\\/g, "/"))
181
+ .map((f) => {
182
+ return {
183
+ name: f,
184
+ stat: fs_1.default.statSync(f),
185
+ };
186
+ })
187
+ .sort((a, b) => a.stat.mtime.getTime() - b.stat.mtime.getTime());
188
+ // clear archived files above limit
189
+ if (aFiles.length > this.Options.options.maxArchiveFiles) {
190
+ for (let i = 0; i < aFiles.length - this.Options.options.maxArchiveFiles; i++) {
191
+ fs_1.default.unlink(aFiles[i].name, (err) => {
192
+ if (err) {
193
+ this.Log.error(err, `Cannot delete archived file at path ${aFiles[i - 1].name}`);
194
+ }
195
+ else {
196
+ this.Log.info(`Deleted archived file at path ${aFiles[i].name}`);
197
+ }
198
+ });
199
+ }
200
+ }
201
+ // now move log files that are above limited file size or old
202
+ const filesToArchive = lFiles.filter((x) => {
203
+ return x.stat.size > this.Options.options.maxSize || lFiles.indexOf(x) <= lFiles.length - 2;
204
+ });
205
+ if (filesToArchive.length === 0) {
206
+ this.ArchiveStatus = FileTargetStatus.IDLE;
207
+ }
208
+ for (let i = 0; i < filesToArchive.length; i++) {
209
+ const { name, ext } = path.parse(path.basename(lFiles[i].name));
210
+ // get number of files with same name, eg. during a day, multiple log files can be produced
211
+ const lArchiFiles = glob_1.default.sync(path.join(this.ArchiveDirPath, `archived_${name}*{${ext},.gzip}`).replace(/\\/g, "/"));
212
+ const fIndex = lodash_1.default.max(lArchiFiles.map((f) => {
213
+ const result = [...f.matchAll(/(\d+)(\.txt|\.gzip)/gm)];
214
+ if (result && result.length > 0) {
215
+ return parseInt(result[0][1]);
216
+ }
217
+ return 0;
218
+ }));
219
+ const archPath = path.join(this.ArchiveDirPath, `archived_${name}_${(fIndex ?? 0) + 1}${ext}`);
220
+ fs_1.default.rename(lFiles[i].name, archPath, (err) => {
221
+ if (err) {
222
+ this.Log.error(err, `Cannot move log file ${name} to archive at path ${archPath}`);
223
+ return;
224
+ }
225
+ if (this.Options.options.compress) {
226
+ this.Log.trace(`Compressing archive log at path ${archPath}`);
227
+ const zippedPath = path.join(this.ArchiveDirPath, `archived_${name}_${lArchiFiles.length + 1}${ext}.gzip`);
228
+ const zip = zlib.createGzip();
229
+ const read = fs_1.default.createReadStream(archPath);
230
+ const write = fs_1.default.createWriteStream(zippedPath);
231
+ (0, stream_1.pipeline)(read, zip, write, (err) => {
232
+ if (err) {
233
+ this.Log.error(err, `Cannot compress archived file at path ${archPath}`);
234
+ fs_1.default.unlink(zippedPath, () => {
235
+ return;
236
+ });
237
+ return;
238
+ }
239
+ this.Log.info(`Succesyfully compressed archive log at path ${zippedPath}`);
240
+ fs_1.default.unlink(archPath, (err) => {
241
+ if (err) {
242
+ this.Log.error(err, `Cannot delete archived log after compression at path ${archPath}`);
243
+ }
244
+ });
245
+ this.ArchiveStatus = FileTargetStatus.IDLE;
246
+ });
247
+ }
248
+ else {
249
+ this.ArchiveStatus = FileTargetStatus.IDLE;
250
+ }
251
+ });
252
+ }
253
+ }
254
+ };
255
+ exports.FileTarget = FileTarget;
256
+ __decorate([
257
+ (0, log_common_1.Logger)("LogFileTarget"),
258
+ __metadata("design:type", log_common_1.Log)
259
+ ], FileTarget.prototype, "Log", void 0);
260
+ exports.FileTarget = FileTarget = __decorate([
261
+ (0, di_1.PerInstanceCheck)(),
262
+ (0, di_1.Injectable)("FileTarget")
263
+ ], FileTarget);
264
264
  //# sourceMappingURL=FileTarget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileTarget.js","sourceRoot":"","sources":["../../../src/targets/FileTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileTarget.js","sourceRoot":"","sources":["../../../src/targets/FileTarget.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAqD;AACrD,2BAAyB;AACzB,4CAAoB;AACpB,2CAA6B;AAC7B,gDAAwB;AACxB,2CAA6B;AAC7B,mCAAkC;AAClC,0DAAgD;AAChD,oDAAoD;AACpD,oCAA2E;AAC3E,oDAA4F;AAE5F,oDAAuB;AAEvB,IAAK,gBAIJ;AAJD,WAAK,gBAAgB;IACnB,+DAAQ,CAAA;IACR,6DAAO,CAAA;IACP,uDAAI,CAAA;AACN,CAAC,EAJI,gBAAgB,KAAhB,gBAAgB,QAIpB;AAED,sEAAsE;AACtE,wFAAwF;AAGjF,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,sBAA6B;IAAtD;;QAQK,WAAM,GAAa,EAAE,CAAC;QACtB,gBAAW,GAAa,EAAE,CAAC;QAK3B,WAAM,GAAqB,gBAAgB,CAAC,IAAI,CAAC;QACjD,kBAAa,GAAqB,gBAAgB,CAAC,IAAI,CAAC;IA+OpE,CAAC;IA7OC,iBAAiB,CAAC,eAAqC;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAClC;YACE,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI,GAAG,IAAI;YACpB,eAAe,EAAE,CAAC;YAClB,eAAe,EAAE,CAAC,GAAG,EAAE;SACxB,EACD,IAAI,CAAC,OAAO,CAAC,OAAO,CACrB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAA,sBAAM,EAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAA,sBAAM,EAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAExI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,MAAM,IAAI,0BAAa,CAAC,+BAA+B,CAAC,CAAC;SAC1D;QAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACnC,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SACpD;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;gBACvC,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;aACxD;SACF;QAED,uDAAuD;QACvD,+CAA+C;QAC/C,+EAA+E;QAC/E,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,+CAA+C;YAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,gBAAgB,CAAC,IAAI,EAAE;gBACzF,OAAO;aACR;YAED,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YAEjB,YAAY,CAAC,GAAG,EAAE;gBAChB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,2CAA2C;QAC3C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,wCAAwC;YACxC,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,gBAAgB,CAAC,IAAI,EAAE;gBACzF,OAAO;aACR;YAED,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC;YAE9C,8BAA8B;YAC9B,YAAY,CAAC,GAAG,EAAE;gBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;QAEhD,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAES,KAAK;QACb,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC;YACpC,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAExC,gDAAgD;QAChD,+CAA+C;QAC/C,MAAM,WAAW,GAAG,IAAA,sBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAExD,YAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAG,CAAC,GAAG,QAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/D,wDAAwD;YACxD,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,oDAAoD,OAAO,EAAE,CAAC,CAAC;aACpF;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,OAAO,kBAAkB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;YAE7H,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,iBAAiB;QACjB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjC,mBAAmB;QACnB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/B,iCAAiC;QACjC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAe;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACzB,OAAO;SACR;QAED,MAAM,MAAM,GAAG,IAAA,sBAAM,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzB,4DAA4D;QAC5D,+BAA+B;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,gBAAgB,CAAC,IAAI,EAAE;YACzF,OAAO;SACR;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;YAC5D,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YAEjB,kEAAkE;YAClE,YAAY,CAAC,GAAG,EAAE;gBAChB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,OAAO;QACf,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,cAAI;aAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aACpF,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;YACjB,OAAO;gBACL,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,YAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;aACrB,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAEnE,MAAM,MAAM,GAAG,cAAI;aAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;YACjB,OAAO;gBACL,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,YAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;aACrB,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAEnE,mCAAmC;QACnC,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE;gBAC7E,YAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBAChC,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,uCAAuC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAClF;yBAAM;wBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAClE;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;QAED,6DAA6D;QAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC;SAC5C;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEhE,2FAA2F;YAC3F,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAErH,MAAM,MAAM,GAAG,gBAAC,CAAC,GAAG,CAClB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAExD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAsB,CAAC,CAAC;iBACpD;gBAED,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;YAE/F,YAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC1C,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,wBAAwB,IAAI,uBAAuB,QAAQ,EAAE,CAAC,CAAC;oBACnF,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;oBAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;oBAC3G,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9B,MAAM,IAAI,GAAG,YAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM,KAAK,GAAG,YAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBAE/C,IAAA,iBAAQ,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;wBACjC,IAAI,GAAG,EAAE;4BACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,yCAAyC,QAAQ,EAAE,CAAC,CAAC;4BACzE,YAAE,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE;gCACzB,OAAO;4BACT,CAAC,CAAC,CAAC;4BAEH,OAAO;yBACR;wBAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+CAA+C,UAAU,EAAE,CAAC,CAAC;wBAE3E,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;4BAC1B,IAAI,GAAG,EAAE;gCACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,wDAAwD,QAAQ,EAAE,CAAC,CAAC;6BACzF;wBACH,CAAC,CAAC,CAAC;wBAEH,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC;oBAC7C,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC;iBAC5C;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF,CAAA;AA9PY,gCAAU;AAEX;IADT,IAAA,mBAAM,EAAC,eAAe,CAAC;8BACT,gBAAG;uCAAC;qBAFR,UAAU;IAFtB,IAAA,qBAAgB,GAAE;IAClB,IAAA,eAAU,EAAC,YAAY,CAAC;GACZ,UAAU,CA8PtB"}
@@ -1,4 +1,4 @@
1
- export * from "./BlackHoleTarget.js";
2
- export * from "./ColoredConsoleTarget.js";
3
- export * from "./FileTarget.js";
1
+ export * from "./BlackHoleTarget.js";
2
+ export * from "./ColoredConsoleTarget.js";
3
+ export * from "./FileTarget.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,20 +1,20 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./BlackHoleTarget.js"), exports);
18
- __exportStar(require("./ColoredConsoleTarget.js"), exports);
19
- __exportStar(require("./FileTarget.js"), exports);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./BlackHoleTarget.js"), exports);
18
+ __exportStar(require("./ColoredConsoleTarget.js"), exports);
19
+ __exportStar(require("./FileTarget.js"), exports);
20
20
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- import { Bootstrapper } from "@spinajs/di";
2
- export declare class LogBotstrapper extends Bootstrapper {
3
- bootstrap(): void;
4
- }
1
+ import { Bootstrapper } from "@spinajs/di";
2
+ export declare class LogBotstrapper extends Bootstrapper {
3
+ bootstrap(): void;
4
+ }
5
5
  //# sourceMappingURL=bootstrap.d.ts.map