@anjianshi/utils 3.7.0 → 3.7.3
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/env-node/logging/handlers.d.ts +3 -7
- package/env-node/logging/handlers.js +7 -5
- package/env-node/logging/index.d.ts +1 -1
- package/env-node/logging/index.js +1 -1
- package/env-service/prisma/adapt-logging.d.ts +8 -3
- package/env-service/prisma/adapt-logging.js +9 -6
- package/logging/adapt.js +0 -3
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type LogInfo, LogHandler } from '../../logging/index.js';
|
|
1
|
+
import { type LogInfo, LogLevel, LogHandler } from '../../logging/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* 向 console 输出日志
|
|
4
4
|
*/
|
|
@@ -22,12 +22,8 @@ export declare class ConsoleHandler extends LogHandler {
|
|
|
22
22
|
(message?: any, ...optionalParams: any[]): void;
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
2: import("chalk").ChalkInstance;
|
|
28
|
-
3: import("chalk").ChalkInstance;
|
|
29
|
-
4: import("chalk").ChalkInstance;
|
|
30
|
-
};
|
|
25
|
+
/** 注意:这里的颜色必须是 chalk 支持的有效颜色 */
|
|
26
|
+
static readonly levelColors: Record<LogLevel, string>;
|
|
31
27
|
private static readonly loggerColors;
|
|
32
28
|
private static readonly loggerColorMap;
|
|
33
29
|
static getLoggerColor(logger: string): "green" | "yellow" | "blue" | "cyan" | "magenta" | "greenBright" | "yellowBright" | "blueBright" | "cyanBright" | "magentaBright";
|
|
@@ -12,7 +12,8 @@ export class ConsoleHandler extends LogHandler {
|
|
|
12
12
|
log(info) {
|
|
13
13
|
const { logger, level, args } = info;
|
|
14
14
|
const method = ConsoleHandler.consoleMethods[level];
|
|
15
|
-
const
|
|
15
|
+
const levelColorName = ConsoleHandler.levelColors[level];
|
|
16
|
+
const levelColor = chalk[levelColorName] ?? chalk.white;
|
|
16
17
|
const levelName = formatters.level(info);
|
|
17
18
|
const loggerColor = chalk[ConsoleHandler.getLoggerColor(logger)];
|
|
18
19
|
const prefix = [
|
|
@@ -28,11 +29,12 @@ export class ConsoleHandler extends LogHandler {
|
|
|
28
29
|
[LogLevel.Warning]: console.warn.bind(console),
|
|
29
30
|
[LogLevel.Error]: console.error.bind(console),
|
|
30
31
|
};
|
|
32
|
+
/** 注意:这里的颜色必须是 chalk 支持的有效颜色 */
|
|
31
33
|
static levelColors = {
|
|
32
|
-
[LogLevel.Debug]:
|
|
33
|
-
[LogLevel.Info]:
|
|
34
|
-
[LogLevel.Warning]:
|
|
35
|
-
[LogLevel.Error]:
|
|
34
|
+
[LogLevel.Debug]: 'whiteBright',
|
|
35
|
+
[LogLevel.Info]: 'white',
|
|
36
|
+
[LogLevel.Warning]: 'yellowBright',
|
|
37
|
+
[LogLevel.Error]: 'redBright',
|
|
36
38
|
};
|
|
37
39
|
// 可供 logger 选择的颜色
|
|
38
40
|
static loggerColors = [
|
|
@@ -25,8 +25,13 @@ export declare function getPrismaLoggingOptions(level: 'debug' | 'info' | 'warn'
|
|
|
25
25
|
level: "error";
|
|
26
26
|
})[];
|
|
27
27
|
};
|
|
28
|
-
/** 把 Prisma
|
|
29
|
-
export declare function adaptPrismaLogging(prisma: Pick<PrismalClient, '$on'>, logger: Logger
|
|
30
|
-
/**
|
|
28
|
+
/** 把 Prisma 日常日志重定向到 logger 中 */
|
|
29
|
+
export declare function adaptPrismaLogging(prisma: Pick<PrismalClient, '$on'>, logger: Logger): void;
|
|
30
|
+
/**
|
|
31
|
+
* 开启调试日志,并改为通过 logger 记录日志内容
|
|
32
|
+
*
|
|
33
|
+
* 注意:
|
|
34
|
+
* 因为 Prisma 在代码被引入时就会开始输出日志,若要记录下最完整的日志内容,应在初始化 Prisma Client 前调用此函数
|
|
35
|
+
*/
|
|
31
36
|
export declare function adaptPrismaDebugLogging(logger: Logger): void;
|
|
32
37
|
export {};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* 对接 Prisma 的日志记录
|
|
3
3
|
*
|
|
4
4
|
* 使用前提:
|
|
5
|
-
* -
|
|
5
|
+
* - 依赖 chalk 库
|
|
6
6
|
*
|
|
7
7
|
* Prisma 输出的日志分两部分:
|
|
8
8
|
* 1. 日常运行日志,可通过 PrismaClient 的 log 选项控制。
|
|
@@ -50,8 +50,8 @@ export function getPrismaLoggingOptions(level) {
|
|
|
50
50
|
],
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
/** 把 Prisma
|
|
54
|
-
export function adaptPrismaLogging(prisma, logger
|
|
53
|
+
/** 把 Prisma 日常日志重定向到 logger 中 */
|
|
54
|
+
export function adaptPrismaLogging(prisma, logger) {
|
|
55
55
|
const queryLogger = logger.getChild('query');
|
|
56
56
|
prisma.$on('query', e => {
|
|
57
57
|
queryLogger.debug(e.query, chalk.green(nodeUtil.format(e.params) + ` +${e.duration}ms`));
|
|
@@ -59,10 +59,13 @@ export function adaptPrismaLogging(prisma, logger, enableDebugLog = false) {
|
|
|
59
59
|
prisma.$on('info', e => logger.info(e.message));
|
|
60
60
|
prisma.$on('warn', e => logger.warn(e.message));
|
|
61
61
|
prisma.$on('error', e => logger.error(e.message));
|
|
62
|
-
if (enableDebugLog)
|
|
63
|
-
adaptPrismaDebugLogging(logger);
|
|
64
62
|
}
|
|
65
|
-
/**
|
|
63
|
+
/**
|
|
64
|
+
* 开启调试日志,并改为通过 logger 记录日志内容
|
|
65
|
+
*
|
|
66
|
+
* 注意:
|
|
67
|
+
* 因为 Prisma 在代码被引入时就会开始输出日志,若要记录下最完整的日志内容,应在初始化 Prisma Client 前调用此函数
|
|
68
|
+
*/
|
|
66
69
|
export function adaptPrismaDebugLogging(logger) {
|
|
67
70
|
;
|
|
68
71
|
globalThis.DEBUG = '*';
|
package/logging/adapt.js
CHANGED
|
@@ -34,9 +34,6 @@ export function adaptDebugLib(debugLib, enable = '', logger) {
|
|
|
34
34
|
logger ??= getLogger('3rd-library');
|
|
35
35
|
debugLib.log = logger.debug.bind(logger);
|
|
36
36
|
if (enable) {
|
|
37
|
-
// 有些库(例如 prisma)重新实现了自己的 debug 库,且模仿 debug 也读取 DEBUG 环境变量。
|
|
38
|
-
// 这里除了设置 debug 库,顺便也适配这些遵循 debug 库模式的自定义库。
|
|
39
|
-
process.env.DEBUG = enable;
|
|
40
37
|
debugLib.enable(enable);
|
|
41
38
|
}
|
|
42
39
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anjianshi/utils",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.3",
|
|
4
4
|
"description": "Common JavaScript Utils",
|
|
5
5
|
"homepage": "https://github.com/anjianshi/js-packages/utils",
|
|
6
6
|
"bugs": {
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"@anjianshi/presets-eslint-base": "6.1.2",
|
|
42
42
|
"@anjianshi/presets-eslint-node": "6.1.2",
|
|
43
43
|
"@anjianshi/presets-eslint-react": "6.1.3",
|
|
44
|
-
"@anjianshi/presets-eslint-typescript": "6.1.2",
|
|
45
44
|
"@anjianshi/presets-prettier": "3.2.0",
|
|
46
|
-
"@anjianshi/presets-typescript": "3.2.5"
|
|
45
|
+
"@anjianshi/presets-typescript": "3.2.5",
|
|
46
|
+
"@anjianshi/presets-eslint-typescript": "6.1.2"
|
|
47
47
|
},
|
|
48
48
|
"prettier": "@anjianshi/presets-prettier/prettierrc"
|
|
49
49
|
}
|