nlogs 1.1.3 → 2.4.1
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 +0 -200
- package/dist/abstract.base.logger.d.ts +46 -0
- package/dist/abstract.base.logger.js +119 -0
- package/dist/abstract.base.logger.js.map +1 -0
- package/dist/base.logger.d.ts +62 -0
- package/dist/base.logger.js +101 -0
- package/dist/base.logger.js.map +1 -0
- package/dist/constants.d.ts +19 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors/cat.nlogs.error.d.ts +4 -0
- package/dist/errors/cat.nlogs.error.js +12 -0
- package/dist/errors/cat.nlogs.error.js.map +1 -0
- package/dist/errors/fs.nlogs.error.d.ts +4 -0
- package/dist/errors/fs.nlogs.error.js +12 -0
- package/dist/errors/fs.nlogs.error.js.map +1 -0
- package/dist/errors/item.nlogs.error.d.ts +4 -0
- package/dist/errors/item.nlogs.error.js +8 -0
- package/dist/errors/item.nlogs.error.js.map +1 -0
- package/dist/errors/item.notfound.error.d.ts +4 -0
- package/dist/errors/item.notfound.error.js +12 -0
- package/dist/errors/item.notfound.error.js.map +1 -0
- package/dist/errors/msg.nlogs.error.d.ts +4 -0
- package/dist/errors/msg.nlogs.error.js +12 -0
- package/dist/errors/msg.nlogs.error.js.map +1 -0
- package/dist/errors/nlogs.error.d.ts +14 -0
- package/dist/errors/nlogs.error.js +30 -0
- package/dist/errors/nlogs.error.js.map +1 -0
- package/dist/errors/param.error.d.ts +6 -0
- package/dist/errors/param.error.js +14 -0
- package/dist/errors/param.error.js.map +1 -0
- package/dist/helpers/color.d.ts +55 -0
- package/dist/helpers/color.js +65 -0
- package/dist/helpers/color.js.map +1 -0
- package/dist/helpers/debug.d.ts +2 -0
- package/dist/helpers/debug.js +11 -0
- package/dist/helpers/debug.js.map +1 -0
- package/dist/helpers/fs.d.ts +6 -0
- package/dist/helpers/fs.js +43 -0
- package/dist/helpers/fs.js.map +1 -0
- package/dist/helpers/stack.d.ts +5 -0
- package/dist/helpers/stack.js +52 -0
- package/dist/helpers/stack.js.map +1 -0
- package/dist/helpers/string.d.ts +9 -0
- package/dist/helpers/string.js +53 -0
- package/dist/helpers/string.js.map +1 -0
- package/dist/helpers/symbols.d.ts +25 -0
- package/dist/helpers/symbols.js +32 -0
- package/dist/helpers/symbols.js.map +1 -0
- package/dist/helpers/template.d.ts +4 -0
- package/dist/helpers/template.js +58 -0
- package/dist/helpers/template.js.map +1 -0
- package/dist/helpers/testHelpers.d.ts +31 -0
- package/dist/helpers/testHelpers.js +239 -0
- package/dist/helpers/testHelpers.js.map +1 -0
- package/dist/helpers/time.d.ts +1 -0
- package/dist/helpers/time.js +6 -0
- package/dist/helpers/time.js.map +1 -0
- package/dist/helpers/types.d.ts +13 -0
- package/dist/helpers/types.js +3 -0
- package/dist/helpers/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +25 -0
- package/dist/logger.js +42 -0
- package/dist/logger.js.map +1 -0
- package/dist/logging.rules.d.ts +28 -0
- package/dist/logging.rules.js +64 -0
- package/dist/logging.rules.js.map +1 -0
- package/dist/message/details.d.ts +43 -0
- package/dist/message/details.js +100 -0
- package/dist/message/details.js.map +1 -0
- package/dist/message/error.details.d.ts +13 -0
- package/dist/message/error.details.js +26 -0
- package/dist/message/error.details.js.map +1 -0
- package/dist/message/log.info.d.ts +20 -0
- package/dist/message/log.info.js +30 -0
- package/dist/message/log.info.js.map +1 -0
- package/dist/message/meta.d.ts +12 -0
- package/dist/message/meta.js +22 -0
- package/dist/message/meta.js.map +1 -0
- package/dist/message/mod.details.d.ts +5 -0
- package/dist/message/mod.details.js +11 -0
- package/dist/message/mod.details.js.map +1 -0
- package/dist/message/time.details.d.ts +6 -0
- package/dist/message/time.details.js +16 -0
- package/dist/message/time.details.js.map +1 -0
- package/dist/message/time.range.d.ts +9 -0
- package/dist/message/time.range.js +23 -0
- package/dist/message/time.range.js.map +1 -0
- package/dist/nestjs.logger.d.ts +8 -0
- package/dist/nestjs.logger.js +29 -0
- package/dist/nestjs.logger.js.map +1 -0
- package/dist/options.d.ts +26 -0
- package/dist/options.js +80 -0
- package/dist/options.js.map +1 -0
- package/dist/template.logger.d.ts +12 -0
- package/dist/template.logger.js +21 -0
- package/dist/template.logger.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/allowed.list.d.ts +18 -0
- package/dist/utils/allowed.list.js +91 -0
- package/dist/utils/allowed.list.js.map +1 -0
- package/dist/utils/category.d.ts +23 -0
- package/dist/utils/category.js +41 -0
- package/dist/utils/category.js.map +1 -0
- package/dist/utils/console.out.d.ts +10 -0
- package/dist/utils/console.out.js +19 -0
- package/dist/utils/console.out.js.map +1 -0
- package/dist/utils/dark.string.formatter.d.ts +24 -0
- package/dist/utils/dark.string.formatter.js +47 -0
- package/dist/utils/dark.string.formatter.js.map +1 -0
- package/dist/utils/items.counter.d.ts +8 -0
- package/dist/utils/items.counter.js +26 -0
- package/dist/utils/items.counter.js.map +1 -0
- package/dist/utils/items.manager.d.ts +55 -0
- package/dist/utils/items.manager.js +147 -0
- package/dist/utils/items.manager.js.map +1 -0
- package/dist/utils/items.timer.d.ts +9 -0
- package/dist/utils/items.timer.js +38 -0
- package/dist/utils/items.timer.js.map +1 -0
- package/dist/utils/json.formatter.d.ts +14 -0
- package/dist/utils/json.formatter.js +43 -0
- package/dist/utils/json.formatter.js.map +1 -0
- package/dist/utils/light.string.formatter.d.ts +6 -0
- package/dist/utils/light.string.formatter.js +16 -0
- package/dist/utils/light.string.formatter.js.map +1 -0
- package/dist/utils/log.reader.d.ts +16 -0
- package/dist/utils/log.reader.js +149 -0
- package/dist/utils/log.reader.js.map +1 -0
- package/dist/utils/mod.d.ts +7 -0
- package/dist/utils/mod.js +16 -0
- package/dist/utils/mod.js.map +1 -0
- package/dist/utils/mod.resolver.d.ts +12 -0
- package/dist/utils/mod.resolver.js +101 -0
- package/dist/utils/mod.resolver.js.map +1 -0
- package/dist/utils/static.logger.d.ts +31 -0
- package/dist/utils/static.logger.js +84 -0
- package/dist/utils/static.logger.js.map +1 -0
- package/dist/utils/string.formatter.d.ts +30 -0
- package/dist/utils/string.formatter.js +110 -0
- package/dist/utils/string.formatter.js.map +1 -0
- package/dist/utils/trace.store.d.ts +33 -0
- package/dist/utils/trace.store.js +76 -0
- package/dist/utils/trace.store.js.map +1 -0
- package/package.json +35 -11
- package/.eslintrc.js +0 -3
- package/index.d.ts +0 -217
- package/index.js +0 -12
- package/lib/config.js +0 -85
- package/lib/constants.js +0 -7
- package/lib/defaultConfig.js +0 -57
- package/lib/logger.js +0 -134
- package/lib/loggerCore.js +0 -105
- package/lib/stringFormatter.js +0 -4
- package/lib/timeFormatter.js +0 -3
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringFormatter = void 0;
|
|
4
|
+
const util_1 = require("util");
|
|
5
|
+
class StringFormatter {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.separator = ':';
|
|
8
|
+
this.timestampSeparator = ' ';
|
|
9
|
+
this.stacktraceSeparator = '==';
|
|
10
|
+
this.brackets = ['[', ']'];
|
|
11
|
+
this.colors = false;
|
|
12
|
+
this.depth = 10;
|
|
13
|
+
}
|
|
14
|
+
symbol(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
bigint(value) {
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
date(value) {
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
array(value) {
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
null(value) {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
messages(data) {
|
|
30
|
+
return (0, util_1.formatWithOptions)({
|
|
31
|
+
colors: this.colors,
|
|
32
|
+
}, ...data);
|
|
33
|
+
}
|
|
34
|
+
time(pretty, label, info) {
|
|
35
|
+
return label ? this.wrap(`${label}: ${pretty}`, info.messages.length) : pretty;
|
|
36
|
+
}
|
|
37
|
+
error(name, message, info) {
|
|
38
|
+
return this.wrap(`${name}: ${message}`, info.messages.length);
|
|
39
|
+
}
|
|
40
|
+
highlight(text, info) {
|
|
41
|
+
return this.wrap(text, info.messages.length);
|
|
42
|
+
}
|
|
43
|
+
wrap(str, count) {
|
|
44
|
+
return count > 1 ? `${this.brackets[0]}${str}${this.brackets[1]}` : str;
|
|
45
|
+
}
|
|
46
|
+
format(info) {
|
|
47
|
+
const msg = this.prepareMessage(info.message, info.details);
|
|
48
|
+
return `${this.prepareTimestamp(info.meta.timestamp)}${this.timestampSeparator}${this.brackets[0]}${this.prepareCategory(info.meta, info.details)} ${this.prepareLevel(info.meta)}${this.brackets[1]}${msg.length ? `${this.separator} ${msg}` : ''}`;
|
|
49
|
+
}
|
|
50
|
+
prepareTimestamp(date) {
|
|
51
|
+
const hours = `${date.getHours()}`.padStart(2, '0');
|
|
52
|
+
const minutes = `${date.getMinutes()}`.padStart(2, '0');
|
|
53
|
+
const seconds = `${date.getSeconds()}`.padStart(2, '0');
|
|
54
|
+
const ms = `${date.getMilliseconds()}`.padStart(3, '0');
|
|
55
|
+
return `${hours}:${minutes}:${seconds}.${ms}`;
|
|
56
|
+
}
|
|
57
|
+
prepareCategory(meta, details) {
|
|
58
|
+
const category = this.prepareCategoryName(meta);
|
|
59
|
+
const mod = this.prepareModuleName(details);
|
|
60
|
+
return mod ? `${mod}${this.separator}${category}` : category;
|
|
61
|
+
}
|
|
62
|
+
prepareCategoryName(meta) {
|
|
63
|
+
return meta.category;
|
|
64
|
+
}
|
|
65
|
+
prepareModuleName(details) {
|
|
66
|
+
if (!details.module)
|
|
67
|
+
return null;
|
|
68
|
+
const { name, version } = details.module;
|
|
69
|
+
return version ? `${name}@${version}` : name;
|
|
70
|
+
}
|
|
71
|
+
prepareLevel(meta) {
|
|
72
|
+
return meta.level.toUpperCase();
|
|
73
|
+
}
|
|
74
|
+
prepareMessage(message, details) {
|
|
75
|
+
if (details.empty && !details.stacks.length && !details.errors.length)
|
|
76
|
+
return message;
|
|
77
|
+
const messages = [message.trim()];
|
|
78
|
+
if (!details.empty)
|
|
79
|
+
messages.push((0, util_1.formatWithOptions)({
|
|
80
|
+
colors: this.colors,
|
|
81
|
+
depth: details.depth !== undefined ? details.depth : this.depth,
|
|
82
|
+
}, details.details));
|
|
83
|
+
const stacktraces = this.prepareStacktraces(details);
|
|
84
|
+
if (stacktraces)
|
|
85
|
+
messages.push(stacktraces);
|
|
86
|
+
return messages.join(' ');
|
|
87
|
+
}
|
|
88
|
+
prepareStacktraces(details) {
|
|
89
|
+
const stacktraces = [];
|
|
90
|
+
const add = (stack, label) => {
|
|
91
|
+
if (label)
|
|
92
|
+
stacktraces.push(label);
|
|
93
|
+
else if (stacktraces.length)
|
|
94
|
+
stacktraces.push(this.stacktraceSeparator);
|
|
95
|
+
stacktraces.push(...stack.map(str => ` ${str}`));
|
|
96
|
+
};
|
|
97
|
+
details.errors.filter(Boolean).forEach(error => add(error.stack, `${error.name}: ${error.message}`));
|
|
98
|
+
details.stacks.filter(Boolean).forEach(stack => {
|
|
99
|
+
if (Array.isArray(stack))
|
|
100
|
+
add(stack, null);
|
|
101
|
+
else
|
|
102
|
+
add(stack.stack, stack.label);
|
|
103
|
+
});
|
|
104
|
+
if (stacktraces.length)
|
|
105
|
+
return `\n${stacktraces.join(`\n`)}`;
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.StringFormatter = StringFormatter;
|
|
110
|
+
//# sourceMappingURL=string.formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.formatter.js","sourceRoot":"","sources":["../../src/utils/string.formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { AsyncLocalStorage } from 'async_hooks';
|
|
3
|
+
import { MaybePromise } from '../helpers/types';
|
|
4
|
+
export interface TraceState<T extends object> {
|
|
5
|
+
traceId: string;
|
|
6
|
+
sessionId?: string;
|
|
7
|
+
parentTrace?: TraceState<T>;
|
|
8
|
+
details?: T;
|
|
9
|
+
}
|
|
10
|
+
export interface WithTraceId {
|
|
11
|
+
traceId?: string;
|
|
12
|
+
sessionId?: string;
|
|
13
|
+
details?: any;
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}
|
|
16
|
+
export declare class TraceStore<T extends object = object> {
|
|
17
|
+
readonly storage: AsyncLocalStorage<TraceState<T>>;
|
|
18
|
+
readonly rootTraceId: `${string}-${string}-${string}-${string}-${string}`;
|
|
19
|
+
get store(): TraceState<T>;
|
|
20
|
+
get traceId(): string;
|
|
21
|
+
set traceId(value: string);
|
|
22
|
+
get sessionId(): string;
|
|
23
|
+
set sessionId(value: string);
|
|
24
|
+
get traceIds(): string[] | undefined;
|
|
25
|
+
get details(): {};
|
|
26
|
+
assign(state: Partial<TraceState<T>>): void;
|
|
27
|
+
setDetails(details: T): void;
|
|
28
|
+
mergeDetails(details: T): void;
|
|
29
|
+
run<R extends MaybePromise<any>>(callback: () => R): R;
|
|
30
|
+
run<R extends MaybePromise<any>>(traceId: string, callback: () => R): R;
|
|
31
|
+
run<R extends MaybePromise<any>, D extends WithTraceId>(details: D, callback: () => R): R;
|
|
32
|
+
exit(): Promise<void>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TraceStore = void 0;
|
|
4
|
+
const async_hooks_1 = require("async_hooks");
|
|
5
|
+
const string_1 = require("../helpers/string");
|
|
6
|
+
const param_error_1 = require("../errors/param.error");
|
|
7
|
+
class TraceStore {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.storage = new async_hooks_1.AsyncLocalStorage();
|
|
10
|
+
this.rootTraceId = (0, string_1.uuid)();
|
|
11
|
+
}
|
|
12
|
+
get store() {
|
|
13
|
+
return this.storage.getStore() || { traceId: this.rootTraceId };
|
|
14
|
+
}
|
|
15
|
+
get traceId() {
|
|
16
|
+
return this.store?.traceId;
|
|
17
|
+
}
|
|
18
|
+
set traceId(value) {
|
|
19
|
+
this.assign({ traceId: value });
|
|
20
|
+
}
|
|
21
|
+
get sessionId() {
|
|
22
|
+
return this.store?.sessionId;
|
|
23
|
+
}
|
|
24
|
+
set sessionId(value) {
|
|
25
|
+
this.assign({ sessionId: value });
|
|
26
|
+
}
|
|
27
|
+
get traceIds() {
|
|
28
|
+
if (!this.store.parentTrace)
|
|
29
|
+
return undefined;
|
|
30
|
+
let state = this.store;
|
|
31
|
+
const ids = new Set();
|
|
32
|
+
while (state.parentTrace) {
|
|
33
|
+
state = state.parentTrace;
|
|
34
|
+
ids.add(state.traceId);
|
|
35
|
+
}
|
|
36
|
+
return [...ids].reverse();
|
|
37
|
+
}
|
|
38
|
+
get details() {
|
|
39
|
+
return this.store.details || {};
|
|
40
|
+
}
|
|
41
|
+
assign(state) {
|
|
42
|
+
this.storage.enterWith(Object.assign({}, this.storage.getStore(), state));
|
|
43
|
+
}
|
|
44
|
+
setDetails(details) {
|
|
45
|
+
this.assign({ details });
|
|
46
|
+
}
|
|
47
|
+
mergeDetails(details) {
|
|
48
|
+
this.assign({ details: Object.assign({}, this.details, details) });
|
|
49
|
+
}
|
|
50
|
+
run(tdc, callback) {
|
|
51
|
+
if (typeof tdc === 'function')
|
|
52
|
+
return this.run({}, tdc);
|
|
53
|
+
if (typeof callback !== 'function')
|
|
54
|
+
throw new param_error_1.ParamNlogsError('TraceStore.run', 'callback');
|
|
55
|
+
if (typeof tdc === 'string')
|
|
56
|
+
return this.run({ traceId: tdc }, callback);
|
|
57
|
+
const { traceId, sessionId, details, ...stateDetails } = tdc;
|
|
58
|
+
const state = {
|
|
59
|
+
...this.store,
|
|
60
|
+
traceId: traceId || (0, string_1.uuid)(),
|
|
61
|
+
sessionId: sessionId || this.sessionId,
|
|
62
|
+
details: {
|
|
63
|
+
...this.details,
|
|
64
|
+
...stateDetails,
|
|
65
|
+
...(details || {}),
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
state.parentTrace = this.store;
|
|
69
|
+
return this.storage.run(state, callback);
|
|
70
|
+
}
|
|
71
|
+
async exit() {
|
|
72
|
+
return new Promise(resolve => this.storage.exit(resolve));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.TraceStore = TraceStore;
|
|
76
|
+
//# sourceMappingURL=trace.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.store.js","sourceRoot":"","sources":["../../src/utils/trace.store.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAC/C,8CAAwC;AAExC,uDAAuD;AAgBvD,MAAa,UAAU;IAAvB;QACW,YAAO,GAAG,IAAI,+BAAiB,EAAiB,CAAA;QAChD,gBAAW,GAAG,IAAA,aAAI,GAAE,CAAA;IAiF/B,CAAC;IA/EC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAA;IACjE,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,CAAA;IAC5B,CAAC;IAED,IAAI,OAAO,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,EAAE,SAAS,CAAA;IAC9B,CAAC;IAED,IAAI,SAAS,CAAC,KAAa;QACzB,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;YAAE,OAAO,SAAS,CAAA;QAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;QAE7B,OAAO,KAAK,CAAC,WAAW,EAAE;YACxB,KAAK,GAAG,KAAK,CAAC,WAAW,CAAA;YACzB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;SACvB;QAID,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,KAA6B;QAClC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED,UAAU,CAAC,OAAU;QACnB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,YAAY,CAAC,OAAU;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IACpE,CAAC;IAKD,GAAG,CAAqD,GAA2B,EAAE,QAAkB;QACrG,IAAI,OAAO,GAAG,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACvD,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,MAAM,IAAI,6BAAe,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;QAC3F,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;QAExE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,GAAG,CAAA;QAE5D,MAAM,KAAK,GAAkB;YAC3B,GAAG,IAAI,CAAC,KAAK;YACb,OAAO,EAAE,OAAO,IAAI,IAAA,aAAI,GAAE;YAC1B,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS;YACtC,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,OAAO;gBACf,GAAG,YAAY;gBACf,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;aACnB;SACF,CAAA;QAED,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAA;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IACjE,CAAC;CACF;AAnFD,gCAmFC"}
|
package/package.json
CHANGED
|
@@ -1,25 +1,49 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nlogs",
|
|
3
|
-
"version": "
|
|
4
|
-
"main": "index.js",
|
|
3
|
+
"version": "2.4.1",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
5
|
"repository": "git@github.com:nerjs/nlogs.git",
|
|
6
6
|
"author": "nerjs <karifan.stap@gmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
8
|
-
"
|
|
8
|
+
"scripts": {
|
|
9
|
+
"lint": "eslint .",
|
|
10
|
+
"clear": "rm -rf ./dist",
|
|
11
|
+
"build": "tsc --build",
|
|
12
|
+
"watch": "tsc --watch",
|
|
13
|
+
"start": "nodemon --enable-source-maps --trace-warnings ./dist",
|
|
14
|
+
"test": "jest",
|
|
15
|
+
"test:watch": "jest --watch",
|
|
16
|
+
"test:cov": "jest --coverage"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist/*"
|
|
20
|
+
],
|
|
9
21
|
"keywords": [
|
|
10
22
|
"logs",
|
|
11
23
|
"logger",
|
|
12
24
|
"console"
|
|
13
25
|
],
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"find-package": "^1.0.0",
|
|
17
|
-
"merge": "^1.2.1",
|
|
18
|
-
"moment": "^2.24.0",
|
|
19
|
-
"pretty-time": "^1.1.0",
|
|
20
|
-
"terminal-link": "^2.1.1"
|
|
26
|
+
"engines": {
|
|
27
|
+
"node": ">=16"
|
|
21
28
|
},
|
|
22
29
|
"devDependencies": {
|
|
23
|
-
"@
|
|
30
|
+
"@types/jest": "29.2.4",
|
|
31
|
+
"@typescript-eslint/eslint-plugin": "5.47.0",
|
|
32
|
+
"@typescript-eslint/parser": "5.47.0",
|
|
33
|
+
"eslint": "8.23",
|
|
34
|
+
"eslint-config-prettier": "8.5.0",
|
|
35
|
+
"eslint-plugin-prettier": "4.2.1",
|
|
36
|
+
"jest": "29.3.1",
|
|
37
|
+
"nodemon": "2.0.19",
|
|
38
|
+
"prettier": "2.7.1",
|
|
39
|
+
"ts-jest": "29.0.3",
|
|
40
|
+
"typescript": "4.9.4",
|
|
41
|
+
"@types/debug": "4.1.7"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@types/node": "18.16.6",
|
|
45
|
+
"@types/pretty-time": "1.1.2",
|
|
46
|
+
"debug": "4.3.4",
|
|
47
|
+
"pretty-time": "1.1.0"
|
|
24
48
|
}
|
|
25
49
|
}
|
package/.eslintrc.js
DELETED
package/index.d.ts
DELETED
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export = Logger;
|
|
3
|
-
|
|
4
|
-
declare function Logger(mod: Logger.ParamModule, config: Logger.Config): Logger.NLogger;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
declare namespace Logger {
|
|
8
|
-
declare type ParamModule = NodeModule | {filename: string} | ImportMeta | string
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @description style methods for colors module
|
|
12
|
-
* @see {@link colors github}
|
|
13
|
-
* @see {@http https://github.com/Marak/colors.js}
|
|
14
|
-
*/
|
|
15
|
-
declare type Style = [
|
|
16
|
-
"black" |
|
|
17
|
-
"red" |
|
|
18
|
-
"green" |
|
|
19
|
-
"yellow" |
|
|
20
|
-
"blue" |
|
|
21
|
-
"magenta" |
|
|
22
|
-
"cyan" |
|
|
23
|
-
"white" |
|
|
24
|
-
"gray" |
|
|
25
|
-
"grey" |
|
|
26
|
-
"brightRed" |
|
|
27
|
-
"brightGreen" |
|
|
28
|
-
"brightYellow" |
|
|
29
|
-
"brightBlue" |
|
|
30
|
-
"brightMagenta" |
|
|
31
|
-
"brightCyan" |
|
|
32
|
-
"brightWhite" |
|
|
33
|
-
"bgBlack" |
|
|
34
|
-
"bgRed" |
|
|
35
|
-
"bgGreen" |
|
|
36
|
-
"bgYellow" |
|
|
37
|
-
"bgBlue" |
|
|
38
|
-
"bgMagenta" |
|
|
39
|
-
"bgCyan" |
|
|
40
|
-
"bgWhite" |
|
|
41
|
-
"bgGray" |
|
|
42
|
-
"bgGrey" |
|
|
43
|
-
"bgBrightRed" |
|
|
44
|
-
"bgBrightGreen" |
|
|
45
|
-
"bgBrightYellow" |
|
|
46
|
-
"bgBrightBlue" |
|
|
47
|
-
"bgBrightMagenta" |
|
|
48
|
-
"bgBrightCyan" |
|
|
49
|
-
"bgBrightWhite" |
|
|
50
|
-
"reset" |
|
|
51
|
-
"bold" |
|
|
52
|
-
"dim" |
|
|
53
|
-
"italic" |
|
|
54
|
-
"underline" |
|
|
55
|
-
"inverse" |
|
|
56
|
-
"hidden" |
|
|
57
|
-
"strikethroug" |
|
|
58
|
-
"rainbow" |
|
|
59
|
-
"zebra" |
|
|
60
|
-
"america" |
|
|
61
|
-
"trap" |
|
|
62
|
-
"random"
|
|
63
|
-
]
|
|
64
|
-
|
|
65
|
-
declare type Segments = {
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @description first segment (moduleName)
|
|
69
|
-
* @default ['yellow', 'italic', 'dim']
|
|
70
|
-
*/
|
|
71
|
-
first: Style,
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* @description filename style
|
|
75
|
-
* @default ['cyan', 'italic']
|
|
76
|
-
*/
|
|
77
|
-
last: Style,
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* @description path sections (from module dir to filename). Without separator
|
|
81
|
-
* @default ['grey', 'italic']
|
|
82
|
-
*/
|
|
83
|
-
all: Style,
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* @description separator path sections
|
|
87
|
-
* @default ['gray']
|
|
88
|
-
*/
|
|
89
|
-
delimiter: Style,
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
declare type MethodConfig = {
|
|
93
|
-
|
|
94
|
-
/** @description Sets whether this method works*/
|
|
95
|
-
show: boolean
|
|
96
|
-
|
|
97
|
-
/** @description style for method build time label. If not specified, use default */
|
|
98
|
-
time?: Style,
|
|
99
|
-
|
|
100
|
-
/** @description style for method build segments (path & moduleName) label. If not specified, use default */
|
|
101
|
-
segments?: Segments,
|
|
102
|
-
|
|
103
|
-
/** @description style for method build methodName label. If not specified, use default */
|
|
104
|
-
label?: Style,
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* @description Show message when invoking logger.time()? Only time method
|
|
108
|
-
* @default false
|
|
109
|
-
*/
|
|
110
|
-
showStartTimer: boolean,
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* @description warning if the label exists when invoking logger.time(). Only time method
|
|
114
|
-
* @default true
|
|
115
|
-
*/
|
|
116
|
-
warningPresentLabel: boolean,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* @description warning if the label does not exist when invoking logger.timeEnd(). Only time method
|
|
121
|
-
* @default true
|
|
122
|
-
*/
|
|
123
|
-
warningMissingLabel: boolean,
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* @description overwrite the label if one already exists. Only time method
|
|
127
|
-
* @default false
|
|
128
|
-
*/
|
|
129
|
-
changePresentLabel: boolean,
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* @description diff time style. Only time method
|
|
133
|
-
* @default ['yellow']
|
|
134
|
-
*/
|
|
135
|
-
diffTimeColor: Style,
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* @description depth param to dir method
|
|
139
|
-
* @default 3
|
|
140
|
-
*/
|
|
141
|
-
depth: number
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
declare interface Config {
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* @description style for default build time label
|
|
149
|
-
* @default ['gray', 'bgBlack']
|
|
150
|
-
*/
|
|
151
|
-
time: Style
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* @description style for default build methodName label
|
|
155
|
-
* @default ['white', 'bold']
|
|
156
|
-
*/
|
|
157
|
-
label: Style
|
|
158
|
-
|
|
159
|
-
/** @description style for default build segments (path & moduleName) label */
|
|
160
|
-
segments: Segments;
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* @description custom formatters
|
|
164
|
-
*/
|
|
165
|
-
formatters: {
|
|
166
|
-
|
|
167
|
-
/** @description format string labels with styles */
|
|
168
|
-
string: (str: string, styles: Style) => string,
|
|
169
|
-
|
|
170
|
-
/** @description format time labels */
|
|
171
|
-
time: (timestamp: number, short: boolean) => string,
|
|
172
|
-
},
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* @default true
|
|
177
|
-
*/
|
|
178
|
-
enableFileLink: boolean;
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* @description if not NULL, each time the indicated timestamp of the log does not match the previous one, an additional message is displayed indicating the full date and time
|
|
182
|
-
* @default hour
|
|
183
|
-
*/
|
|
184
|
-
groupedEveryTime: 'minute' | 'hour' | 'day' | null,
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* @description config for each method
|
|
188
|
-
*/
|
|
189
|
-
methods: {
|
|
190
|
-
log: MethodConfig,
|
|
191
|
-
info: MethodConfig,
|
|
192
|
-
debug: MethodConfig,
|
|
193
|
-
warn: MethodConfig,
|
|
194
|
-
error: MethodConfig,
|
|
195
|
-
time: MethodConfig,
|
|
196
|
-
dir: MethodConfig,
|
|
197
|
-
table: MethodConfig
|
|
198
|
-
},
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
export declare function getConfig(): Config;
|
|
202
|
-
export declare function setConfig(newConfig: Config): undefined;
|
|
203
|
-
|
|
204
|
-
export declare class NLogger {
|
|
205
|
-
log(): undefined;
|
|
206
|
-
info(): undefined;
|
|
207
|
-
debug(): undefined;
|
|
208
|
-
warn(): undefined;
|
|
209
|
-
error(): undefined;
|
|
210
|
-
time(label: string): undefined;
|
|
211
|
-
timeLog(label: string): undefined;
|
|
212
|
-
timeEnd(label: string): undefined;
|
|
213
|
-
dir(obj: object, params: {depth: number}): undefined;
|
|
214
|
-
table(arr: [object]): undefined;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
package/index.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const NLogger = require('./lib/logger')
|
|
2
|
-
const Settings = require('./lib/config')
|
|
3
|
-
|
|
4
|
-
const Logger = (mod, settings) => new NLogger(mod, settings)
|
|
5
|
-
|
|
6
|
-
exports = module.exports = Logger
|
|
7
|
-
|
|
8
|
-
exports.Logger = NLogger
|
|
9
|
-
|
|
10
|
-
exports.getConfig = () => Settings.config
|
|
11
|
-
|
|
12
|
-
exports.setConfig = newConfig => Settings.setConfig(newConfig)
|
package/lib/config.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
const merge = require('merge')
|
|
2
|
-
const findPackage = require('find-package')
|
|
3
|
-
const path = require('path')
|
|
4
|
-
const { fileURLToPath } = require('url')
|
|
5
|
-
const defaultConfig = require('./defaultConfig')
|
|
6
|
-
|
|
7
|
-
class NLoggerConfig {
|
|
8
|
-
constructor(mod, innerConfig) {
|
|
9
|
-
this.module = mod
|
|
10
|
-
this.config = innerConfig || {}
|
|
11
|
-
this.filename = null
|
|
12
|
-
this.packagePath = null
|
|
13
|
-
this.packageName = null
|
|
14
|
-
this.segments = []
|
|
15
|
-
|
|
16
|
-
this.initConfig()
|
|
17
|
-
this.initFileInfo()
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
initConfig() {
|
|
21
|
-
this.config = merge.recursive({}, NLoggerConfig.config, this.config || {})
|
|
22
|
-
|
|
23
|
-
let maxWidth = 0
|
|
24
|
-
|
|
25
|
-
Object.keys(this.config.methods).forEach(key => {
|
|
26
|
-
if (key.length > maxWidth) maxWidth = key.length
|
|
27
|
-
this.config.methods[key] = merge.recursive(
|
|
28
|
-
{},
|
|
29
|
-
{
|
|
30
|
-
time: this.config.time,
|
|
31
|
-
segments: this.config.segments,
|
|
32
|
-
label: this.config.label,
|
|
33
|
-
},
|
|
34
|
-
this.config.methods[key],
|
|
35
|
-
)
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
Object.keys(this.config.methods).forEach(key => {
|
|
39
|
-
this.config.methods[key].__space = Array(maxWidth - key.length)
|
|
40
|
-
.fill(null)
|
|
41
|
-
.map(() => ' ')
|
|
42
|
-
.join('')
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
this.formatters = this.config.formatters
|
|
46
|
-
|
|
47
|
-
if (typeof this.module === 'string') {
|
|
48
|
-
this.module = {
|
|
49
|
-
filename: this.module,
|
|
50
|
-
}
|
|
51
|
-
} else if (typeof this.module === 'object' && !this.module.filename && this.module.url) {
|
|
52
|
-
this.module = {
|
|
53
|
-
filename: fileURLToPath(this.module.url),
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (!this.module.path) this.module.path = path.dirname(this.module.filename)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
initFileInfo() {
|
|
61
|
-
this.filename = this.module.filename
|
|
62
|
-
|
|
63
|
-
const packageInfo = findPackage(this.module.path, true)
|
|
64
|
-
|
|
65
|
-
if (!packageInfo) return
|
|
66
|
-
|
|
67
|
-
this.packageName = packageInfo.name
|
|
68
|
-
this.packagePath = path.dirname(packageInfo.paths.absolute)
|
|
69
|
-
|
|
70
|
-
this.segments = this.filename
|
|
71
|
-
.replace(this.packagePath, '')
|
|
72
|
-
.replace(/^\//, '')
|
|
73
|
-
.split(path.sep)
|
|
74
|
-
|
|
75
|
-
this.segments.unshift(this.packageName)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
static config = defaultConfig
|
|
79
|
-
|
|
80
|
-
static setConfig(newConfig) {
|
|
81
|
-
this.config = merge.recursive({}, this.config, newConfig)
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
module.exports = NLoggerConfig
|
package/lib/constants.js
DELETED
package/lib/defaultConfig.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
const stringFormatter = require('./stringFormatter')
|
|
2
|
-
const timeFormatter = require('./timeFormatter')
|
|
3
|
-
const { GROUP_TIME } = require('./constants')
|
|
4
|
-
|
|
5
|
-
module.exports = {
|
|
6
|
-
time: ['gray', 'bgBlack'],
|
|
7
|
-
label: ['white', 'bold'],
|
|
8
|
-
segments: {
|
|
9
|
-
first: ['yellow', 'italic', 'dim'],
|
|
10
|
-
last: ['cyan', 'italic'],
|
|
11
|
-
all: ['gray', 'italic'],
|
|
12
|
-
delimiter: ['gray'],
|
|
13
|
-
},
|
|
14
|
-
formatters: {
|
|
15
|
-
string: stringFormatter,
|
|
16
|
-
time: timeFormatter,
|
|
17
|
-
},
|
|
18
|
-
enableFileLink: true,
|
|
19
|
-
groupedEveryTime: GROUP_TIME.HOUR, // minute, hour, day, null
|
|
20
|
-
methods: {
|
|
21
|
-
log: {
|
|
22
|
-
show: true,
|
|
23
|
-
},
|
|
24
|
-
info: {
|
|
25
|
-
show: true,
|
|
26
|
-
label: ['green'],
|
|
27
|
-
},
|
|
28
|
-
debug: {
|
|
29
|
-
label: ['magenta'],
|
|
30
|
-
show: process.env.NODE_ENV != 'production',
|
|
31
|
-
},
|
|
32
|
-
warn: {
|
|
33
|
-
show: process.env.NODE_ENV != 'production',
|
|
34
|
-
label: ['yellow'],
|
|
35
|
-
},
|
|
36
|
-
error: {
|
|
37
|
-
label: ['red'],
|
|
38
|
-
show: true,
|
|
39
|
-
},
|
|
40
|
-
time: {
|
|
41
|
-
show: true,
|
|
42
|
-
showStartTimer: false,
|
|
43
|
-
warningMissingLabel: true,
|
|
44
|
-
warningPresentLabel: true,
|
|
45
|
-
changePresentLabel: false,
|
|
46
|
-
diffTimeColor: ['yellow'],
|
|
47
|
-
label: ['black', 'bgYellow'],
|
|
48
|
-
},
|
|
49
|
-
dir: {
|
|
50
|
-
show: process.env.NODE_ENV != 'production',
|
|
51
|
-
depth: 3,
|
|
52
|
-
},
|
|
53
|
-
table: {
|
|
54
|
-
show: process.env.NODE_ENV != 'production',
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
}
|