@innei/pretty-logger-nestjs 0.3.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/dist/index.d.mts +30 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +168 -0
- package/dist/index.mjs +134 -0
- package/index.ts +6 -0
- package/logger.module.ts +26 -0
- package/logger.service.ts +126 -0
- package/package.json +27 -0
- package/tsup.config.ts +9 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { WrappedConsola, ConsolaInstance } from '@innei/pretty-logger-core';
|
|
2
|
+
export { LoggerConsolaOptions, createLoggerConsola as createLogger } from '@innei/pretty-logger-core';
|
|
3
|
+
import { ConsoleLogger, ConsoleLoggerOptions, DynamicModule } from '@nestjs/common';
|
|
4
|
+
|
|
5
|
+
declare class Logger extends ConsoleLogger {
|
|
6
|
+
private static loggerInstance;
|
|
7
|
+
static setLoggerInstance(logger: WrappedConsola): void;
|
|
8
|
+
constructor(context: string, options: ConsoleLoggerOptions);
|
|
9
|
+
private _getColorByLogLevel;
|
|
10
|
+
private lastTimestampAt;
|
|
11
|
+
private _updateAndGetTimestampDiff;
|
|
12
|
+
protected formatMessage(message: any, logLevel?: string): any;
|
|
13
|
+
log(message: any, context?: string, ...argv: any[]): void;
|
|
14
|
+
warn(message: any, context?: string, ...argv: any[]): void;
|
|
15
|
+
debug(message: any, context?: string, ...argv: any[]): void;
|
|
16
|
+
verbose(message: any, context?: string, ...argv: any[]): void;
|
|
17
|
+
fatal(message: any, context?: string, ...argv: any[]): void;
|
|
18
|
+
error(message: any, context?: string, ...argv: any[]): void;
|
|
19
|
+
private print;
|
|
20
|
+
private defaultContextPrefix;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface LoggerModuleOptions {
|
|
24
|
+
consola: ConsolaInstance;
|
|
25
|
+
}
|
|
26
|
+
declare class LoggerModule {
|
|
27
|
+
static forFeature(options?: LoggerModuleOptions): DynamicModule;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { Logger, LoggerModule };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { WrappedConsola, ConsolaInstance } from '@innei/pretty-logger-core';
|
|
2
|
+
export { LoggerConsolaOptions, createLoggerConsola as createLogger } from '@innei/pretty-logger-core';
|
|
3
|
+
import { ConsoleLogger, ConsoleLoggerOptions, DynamicModule } from '@nestjs/common';
|
|
4
|
+
|
|
5
|
+
declare class Logger extends ConsoleLogger {
|
|
6
|
+
private static loggerInstance;
|
|
7
|
+
static setLoggerInstance(logger: WrappedConsola): void;
|
|
8
|
+
constructor(context: string, options: ConsoleLoggerOptions);
|
|
9
|
+
private _getColorByLogLevel;
|
|
10
|
+
private lastTimestampAt;
|
|
11
|
+
private _updateAndGetTimestampDiff;
|
|
12
|
+
protected formatMessage(message: any, logLevel?: string): any;
|
|
13
|
+
log(message: any, context?: string, ...argv: any[]): void;
|
|
14
|
+
warn(message: any, context?: string, ...argv: any[]): void;
|
|
15
|
+
debug(message: any, context?: string, ...argv: any[]): void;
|
|
16
|
+
verbose(message: any, context?: string, ...argv: any[]): void;
|
|
17
|
+
fatal(message: any, context?: string, ...argv: any[]): void;
|
|
18
|
+
error(message: any, context?: string, ...argv: any[]): void;
|
|
19
|
+
private print;
|
|
20
|
+
private defaultContextPrefix;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface LoggerModuleOptions {
|
|
24
|
+
consola: ConsolaInstance;
|
|
25
|
+
}
|
|
26
|
+
declare class LoggerModule {
|
|
27
|
+
static forFeature(options?: LoggerModuleOptions): DynamicModule;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { Logger, LoggerModule };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
30
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
31
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
32
|
+
if (decorator = decorators[i])
|
|
33
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
34
|
+
if (kind && result)
|
|
35
|
+
__defProp(target, key, result);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// index.ts
|
|
40
|
+
var nest_exports = {};
|
|
41
|
+
__export(nest_exports, {
|
|
42
|
+
Logger: () => Logger,
|
|
43
|
+
LoggerConsolaOptions: () => import_pretty_logger_core3.LoggerConsolaOptions,
|
|
44
|
+
LoggerModule: () => LoggerModule,
|
|
45
|
+
createLogger: () => import_pretty_logger_core3.createLoggerConsola
|
|
46
|
+
});
|
|
47
|
+
module.exports = __toCommonJS(nest_exports);
|
|
48
|
+
|
|
49
|
+
// logger.service.ts
|
|
50
|
+
var import_cluster = __toESM(require("cluster"));
|
|
51
|
+
var import_picocolors = __toESM(require("picocolors"));
|
|
52
|
+
var import_pretty_logger_core = require("@innei/pretty-logger-core");
|
|
53
|
+
var import_common = require("@nestjs/common");
|
|
54
|
+
var _Logger = class _Logger extends import_common.ConsoleLogger {
|
|
55
|
+
constructor(context, options) {
|
|
56
|
+
super(context, options);
|
|
57
|
+
this.lastTimestampAt = Date.now();
|
|
58
|
+
this.defaultContextPrefix = this.context ? `[${import_picocolors.default.yellow(this.context)}] ` : `[${import_picocolors.default.red("System")}] `;
|
|
59
|
+
}
|
|
60
|
+
static setLoggerInstance(logger) {
|
|
61
|
+
this.loggerInstance = logger;
|
|
62
|
+
}
|
|
63
|
+
_getColorByLogLevel(logLevel) {
|
|
64
|
+
switch (logLevel) {
|
|
65
|
+
case "debug":
|
|
66
|
+
return import_picocolors.default.cyan;
|
|
67
|
+
case "warn":
|
|
68
|
+
return import_picocolors.default.yellow;
|
|
69
|
+
case "error":
|
|
70
|
+
return import_picocolors.default.red;
|
|
71
|
+
case "verbose":
|
|
72
|
+
return import_picocolors.default.gray;
|
|
73
|
+
default:
|
|
74
|
+
return import_picocolors.default.green;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
_updateAndGetTimestampDiff() {
|
|
78
|
+
const includeTimestamp = this.lastTimestampAt && this.options.timestamp;
|
|
79
|
+
const now = Date.now();
|
|
80
|
+
const result = includeTimestamp ? import_picocolors.default.yellow(` +${now - this.lastTimestampAt}ms`) : "";
|
|
81
|
+
this.lastTimestampAt = now;
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
formatMessage(message, logLevel = "log") {
|
|
85
|
+
const formatMessage = typeof message == "string" ? this._getColorByLogLevel(logLevel)(message) : message;
|
|
86
|
+
return formatMessage;
|
|
87
|
+
}
|
|
88
|
+
log(message, context, ...argv) {
|
|
89
|
+
this.print("info", message, context, ...argv);
|
|
90
|
+
}
|
|
91
|
+
warn(message, context, ...argv) {
|
|
92
|
+
this.print("warn", message, context, ...argv);
|
|
93
|
+
}
|
|
94
|
+
debug(message, context, ...argv) {
|
|
95
|
+
this.print("debug", message, context, ...argv);
|
|
96
|
+
}
|
|
97
|
+
verbose(message, context, ...argv) {
|
|
98
|
+
this.print("verbose", message, context, ...argv);
|
|
99
|
+
}
|
|
100
|
+
fatal(message, context, ...argv) {
|
|
101
|
+
this.print("fatal", message, context, ...argv);
|
|
102
|
+
}
|
|
103
|
+
error(message, context, ...argv) {
|
|
104
|
+
const trace = context;
|
|
105
|
+
const _context = argv[0];
|
|
106
|
+
if (!trace && _context) {
|
|
107
|
+
this.print("error", message, _context, ...argv.slice(1));
|
|
108
|
+
} else {
|
|
109
|
+
this.print("error", message, context, ...argv);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
print(level, message, context, ...argv) {
|
|
113
|
+
const print = _Logger.loggerInstance[level];
|
|
114
|
+
const formatMessage = this.formatMessage(message, level);
|
|
115
|
+
const diff = this._updateAndGetTimestampDiff();
|
|
116
|
+
const workerPrefix = import_cluster.default.isWorker ? import_picocolors.default.yellow(`*Worker - ${import_cluster.default.worker.id}*`) : "";
|
|
117
|
+
if (context && !argv.length) {
|
|
118
|
+
print(
|
|
119
|
+
`${workerPrefix} [${import_picocolors.default.yellow(context)}] `,
|
|
120
|
+
formatMessage,
|
|
121
|
+
diff
|
|
122
|
+
);
|
|
123
|
+
} else if (!argv.length) {
|
|
124
|
+
print(`${workerPrefix} ${this.defaultContextPrefix}`, formatMessage, diff);
|
|
125
|
+
} else {
|
|
126
|
+
print(
|
|
127
|
+
`${workerPrefix} ${this.defaultContextPrefix}`,
|
|
128
|
+
message,
|
|
129
|
+
context,
|
|
130
|
+
...argv,
|
|
131
|
+
diff
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
_Logger.loggerInstance = (0, import_pretty_logger_core.createLoggerConsola)();
|
|
137
|
+
var Logger = _Logger;
|
|
138
|
+
|
|
139
|
+
// logger.module.ts
|
|
140
|
+
var import_pretty_logger_core2 = require("@innei/pretty-logger-core");
|
|
141
|
+
var import_common2 = require("@nestjs/common");
|
|
142
|
+
var LoggerModule = class {
|
|
143
|
+
static forFeature(options) {
|
|
144
|
+
const { consola } = options || {};
|
|
145
|
+
return {
|
|
146
|
+
module: LoggerModule,
|
|
147
|
+
providers: [
|
|
148
|
+
{
|
|
149
|
+
provide: "L",
|
|
150
|
+
useValue: consola || (0, import_pretty_logger_core2.createLoggerConsola)()
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
LoggerModule = __decorateClass([
|
|
157
|
+
(0, import_common2.Module)({ providers: [Logger], exports: [Logger] })
|
|
158
|
+
], LoggerModule);
|
|
159
|
+
|
|
160
|
+
// index.ts
|
|
161
|
+
var import_pretty_logger_core3 = require("@innei/pretty-logger-core");
|
|
162
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
163
|
+
0 && (module.exports = {
|
|
164
|
+
Logger,
|
|
165
|
+
LoggerConsolaOptions,
|
|
166
|
+
LoggerModule,
|
|
167
|
+
createLogger
|
|
168
|
+
});
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result)
|
|
9
|
+
__defProp(target, key, result);
|
|
10
|
+
return result;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// logger.service.ts
|
|
14
|
+
import cluster from "cluster";
|
|
15
|
+
import picocolors from "picocolors";
|
|
16
|
+
import { createLoggerConsola } from "@innei/pretty-logger-core";
|
|
17
|
+
import { ConsoleLogger } from "@nestjs/common";
|
|
18
|
+
var _Logger = class _Logger extends ConsoleLogger {
|
|
19
|
+
constructor(context, options) {
|
|
20
|
+
super(context, options);
|
|
21
|
+
this.lastTimestampAt = Date.now();
|
|
22
|
+
this.defaultContextPrefix = this.context ? `[${picocolors.yellow(this.context)}] ` : `[${picocolors.red("System")}] `;
|
|
23
|
+
}
|
|
24
|
+
static setLoggerInstance(logger) {
|
|
25
|
+
this.loggerInstance = logger;
|
|
26
|
+
}
|
|
27
|
+
_getColorByLogLevel(logLevel) {
|
|
28
|
+
switch (logLevel) {
|
|
29
|
+
case "debug":
|
|
30
|
+
return picocolors.cyan;
|
|
31
|
+
case "warn":
|
|
32
|
+
return picocolors.yellow;
|
|
33
|
+
case "error":
|
|
34
|
+
return picocolors.red;
|
|
35
|
+
case "verbose":
|
|
36
|
+
return picocolors.gray;
|
|
37
|
+
default:
|
|
38
|
+
return picocolors.green;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
_updateAndGetTimestampDiff() {
|
|
42
|
+
const includeTimestamp = this.lastTimestampAt && this.options.timestamp;
|
|
43
|
+
const now = Date.now();
|
|
44
|
+
const result = includeTimestamp ? picocolors.yellow(` +${now - this.lastTimestampAt}ms`) : "";
|
|
45
|
+
this.lastTimestampAt = now;
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
formatMessage(message, logLevel = "log") {
|
|
49
|
+
const formatMessage = typeof message == "string" ? this._getColorByLogLevel(logLevel)(message) : message;
|
|
50
|
+
return formatMessage;
|
|
51
|
+
}
|
|
52
|
+
log(message, context, ...argv) {
|
|
53
|
+
this.print("info", message, context, ...argv);
|
|
54
|
+
}
|
|
55
|
+
warn(message, context, ...argv) {
|
|
56
|
+
this.print("warn", message, context, ...argv);
|
|
57
|
+
}
|
|
58
|
+
debug(message, context, ...argv) {
|
|
59
|
+
this.print("debug", message, context, ...argv);
|
|
60
|
+
}
|
|
61
|
+
verbose(message, context, ...argv) {
|
|
62
|
+
this.print("verbose", message, context, ...argv);
|
|
63
|
+
}
|
|
64
|
+
fatal(message, context, ...argv) {
|
|
65
|
+
this.print("fatal", message, context, ...argv);
|
|
66
|
+
}
|
|
67
|
+
error(message, context, ...argv) {
|
|
68
|
+
const trace = context;
|
|
69
|
+
const _context = argv[0];
|
|
70
|
+
if (!trace && _context) {
|
|
71
|
+
this.print("error", message, _context, ...argv.slice(1));
|
|
72
|
+
} else {
|
|
73
|
+
this.print("error", message, context, ...argv);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
print(level, message, context, ...argv) {
|
|
77
|
+
const print = _Logger.loggerInstance[level];
|
|
78
|
+
const formatMessage = this.formatMessage(message, level);
|
|
79
|
+
const diff = this._updateAndGetTimestampDiff();
|
|
80
|
+
const workerPrefix = cluster.isWorker ? picocolors.yellow(`*Worker - ${cluster.worker.id}*`) : "";
|
|
81
|
+
if (context && !argv.length) {
|
|
82
|
+
print(
|
|
83
|
+
`${workerPrefix} [${picocolors.yellow(context)}] `,
|
|
84
|
+
formatMessage,
|
|
85
|
+
diff
|
|
86
|
+
);
|
|
87
|
+
} else if (!argv.length) {
|
|
88
|
+
print(`${workerPrefix} ${this.defaultContextPrefix}`, formatMessage, diff);
|
|
89
|
+
} else {
|
|
90
|
+
print(
|
|
91
|
+
`${workerPrefix} ${this.defaultContextPrefix}`,
|
|
92
|
+
message,
|
|
93
|
+
context,
|
|
94
|
+
...argv,
|
|
95
|
+
diff
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
_Logger.loggerInstance = createLoggerConsola();
|
|
101
|
+
var Logger = _Logger;
|
|
102
|
+
|
|
103
|
+
// logger.module.ts
|
|
104
|
+
import { createLoggerConsola as createLoggerConsola2 } from "@innei/pretty-logger-core";
|
|
105
|
+
import { Module } from "@nestjs/common";
|
|
106
|
+
var LoggerModule = class {
|
|
107
|
+
static forFeature(options) {
|
|
108
|
+
const { consola } = options || {};
|
|
109
|
+
return {
|
|
110
|
+
module: LoggerModule,
|
|
111
|
+
providers: [
|
|
112
|
+
{
|
|
113
|
+
provide: "L",
|
|
114
|
+
useValue: consola || createLoggerConsola2()
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
LoggerModule = __decorateClass([
|
|
121
|
+
Module({ providers: [Logger], exports: [Logger] })
|
|
122
|
+
], LoggerModule);
|
|
123
|
+
|
|
124
|
+
// index.ts
|
|
125
|
+
import {
|
|
126
|
+
LoggerConsolaOptions,
|
|
127
|
+
createLoggerConsola as createLoggerConsola3
|
|
128
|
+
} from "@innei/pretty-logger-core";
|
|
129
|
+
export {
|
|
130
|
+
Logger,
|
|
131
|
+
LoggerConsolaOptions,
|
|
132
|
+
LoggerModule,
|
|
133
|
+
createLoggerConsola3 as createLogger
|
|
134
|
+
};
|
package/index.ts
ADDED
package/logger.module.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ConsolaInstance } from '@innei/pretty-logger-core'
|
|
2
|
+
import type { DynamicModule } from '@nestjs/common'
|
|
3
|
+
|
|
4
|
+
import { createLoggerConsola } from '@innei/pretty-logger-core'
|
|
5
|
+
import { Module } from '@nestjs/common'
|
|
6
|
+
|
|
7
|
+
import { Logger } from './logger.service.js'
|
|
8
|
+
|
|
9
|
+
interface LoggerModuleOptions {
|
|
10
|
+
consola: ConsolaInstance
|
|
11
|
+
}
|
|
12
|
+
@Module({ providers: [Logger], exports: [Logger] })
|
|
13
|
+
export class LoggerModule {
|
|
14
|
+
static forFeature(options?: LoggerModuleOptions): DynamicModule {
|
|
15
|
+
const { consola } = options || {}
|
|
16
|
+
return {
|
|
17
|
+
module: LoggerModule,
|
|
18
|
+
providers: [
|
|
19
|
+
{
|
|
20
|
+
provide: 'L',
|
|
21
|
+
useValue: consola || createLoggerConsola(),
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import cluster from 'cluster'
|
|
2
|
+
import picocolors from 'picocolors'
|
|
3
|
+
import type { WrappedConsola } from '@innei/pretty-logger-core'
|
|
4
|
+
import type { ConsoleLoggerOptions } from '@nestjs/common'
|
|
5
|
+
|
|
6
|
+
import { createLoggerConsola } from '@innei/pretty-logger-core'
|
|
7
|
+
import { ConsoleLogger } from '@nestjs/common'
|
|
8
|
+
|
|
9
|
+
type LoggerType =
|
|
10
|
+
| 'info'
|
|
11
|
+
| 'log'
|
|
12
|
+
| 'error'
|
|
13
|
+
| 'warn'
|
|
14
|
+
| 'debug'
|
|
15
|
+
| 'verbose'
|
|
16
|
+
| 'fatal'
|
|
17
|
+
|
|
18
|
+
export class Logger extends ConsoleLogger {
|
|
19
|
+
private static loggerInstance = createLoggerConsola()
|
|
20
|
+
|
|
21
|
+
static setLoggerInstance(logger: WrappedConsola) {
|
|
22
|
+
this.loggerInstance = logger
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
constructor(context: string, options: ConsoleLoggerOptions) {
|
|
26
|
+
super(context, options)
|
|
27
|
+
}
|
|
28
|
+
private _getColorByLogLevel(logLevel: string) {
|
|
29
|
+
switch (logLevel) {
|
|
30
|
+
case 'debug':
|
|
31
|
+
return picocolors.cyan
|
|
32
|
+
case 'warn':
|
|
33
|
+
return picocolors.yellow
|
|
34
|
+
case 'error':
|
|
35
|
+
return picocolors.red
|
|
36
|
+
case 'verbose':
|
|
37
|
+
return picocolors.gray
|
|
38
|
+
default:
|
|
39
|
+
return picocolors.green
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
private lastTimestampAt: number = Date.now()
|
|
44
|
+
private _updateAndGetTimestampDiff() {
|
|
45
|
+
const includeTimestamp = this.lastTimestampAt && this.options.timestamp
|
|
46
|
+
const now = Date.now()
|
|
47
|
+
const result = includeTimestamp
|
|
48
|
+
? picocolors.yellow(` +${now - this.lastTimestampAt}ms`)
|
|
49
|
+
: ''
|
|
50
|
+
this.lastTimestampAt = now
|
|
51
|
+
return result
|
|
52
|
+
}
|
|
53
|
+
protected formatMessage(message: any, logLevel = 'log') {
|
|
54
|
+
const formatMessage =
|
|
55
|
+
typeof message == 'string'
|
|
56
|
+
? this._getColorByLogLevel(logLevel)(message)
|
|
57
|
+
: message
|
|
58
|
+
return formatMessage
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
log(message: any, context?: string, ...argv: any[]) {
|
|
62
|
+
this.print('info', message, context, ...argv)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
warn(message: any, context?: string, ...argv: any[]) {
|
|
66
|
+
this.print('warn', message, context, ...argv)
|
|
67
|
+
}
|
|
68
|
+
debug(message: any, context?: string, ...argv: any[]) {
|
|
69
|
+
this.print('debug', message, context, ...argv)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
verbose(message: any, context?: string, ...argv: any[]) {
|
|
73
|
+
this.print('verbose', message, context, ...argv)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
fatal(message: any, context?: string, ...argv: any[]) {
|
|
77
|
+
this.print('fatal', message, context, ...argv)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
error(message: any, context?: string, ...argv: any[]) {
|
|
81
|
+
const trace = context
|
|
82
|
+
const _context = argv[0]
|
|
83
|
+
|
|
84
|
+
if (!trace && _context) {
|
|
85
|
+
this.print('error', message, _context, ...argv.slice(1))
|
|
86
|
+
} else {
|
|
87
|
+
this.print('error', message, context, ...argv)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
private print(
|
|
92
|
+
level: LoggerType,
|
|
93
|
+
message: any,
|
|
94
|
+
context?: string,
|
|
95
|
+
...argv: any[]
|
|
96
|
+
) {
|
|
97
|
+
const print = Logger.loggerInstance[level]
|
|
98
|
+
const formatMessage = this.formatMessage(message, level)
|
|
99
|
+
const diff = this._updateAndGetTimestampDiff()
|
|
100
|
+
|
|
101
|
+
const workerPrefix = cluster.isWorker
|
|
102
|
+
? picocolors.yellow(`*Worker - ${cluster!.worker!.id}*`)
|
|
103
|
+
: ''
|
|
104
|
+
if (context && !argv.length) {
|
|
105
|
+
print(
|
|
106
|
+
`${workerPrefix} [${picocolors.yellow(context)}] `,
|
|
107
|
+
formatMessage,
|
|
108
|
+
diff,
|
|
109
|
+
)
|
|
110
|
+
} else if (!argv.length) {
|
|
111
|
+
print(`${workerPrefix} ${this.defaultContextPrefix}`, formatMessage, diff)
|
|
112
|
+
} else {
|
|
113
|
+
print(
|
|
114
|
+
`${workerPrefix} ${this.defaultContextPrefix}`,
|
|
115
|
+
message,
|
|
116
|
+
context,
|
|
117
|
+
...argv,
|
|
118
|
+
diff,
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
private defaultContextPrefix = this.context
|
|
124
|
+
? `[${picocolors.yellow(this.context)}] `
|
|
125
|
+
: `[${picocolors.red('System')}] `
|
|
126
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@innei/pretty-logger-nestjs",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"module": "dist/index.mjs",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"require": "./dist/index.js",
|
|
10
|
+
"import": "./dist/index.mjs"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"cron": "3.1.6",
|
|
15
|
+
"defu": "^6.1.3",
|
|
16
|
+
"picocolors": "^1.0.0",
|
|
17
|
+
"std-env": "^3.5.0",
|
|
18
|
+
"string-width": "npm:@innei/string-width@7.1.1-fork.0",
|
|
19
|
+
"@innei/pretty-logger-core": "0.3.0"
|
|
20
|
+
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@nestjs/common": ">=10"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsup"
|
|
26
|
+
}
|
|
27
|
+
}
|