@lodestar/utils 1.1.0-dev.fd8e335b29 → 1.1.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/lib/logger/format.js +1 -1
- package/lib/logger/format.js.map +1 -1
- package/lib/logger/index.d.ts +1 -0
- package/lib/logger/index.js +1 -0
- package/lib/logger/index.js.map +1 -1
- package/lib/logger/interface.d.ts +15 -5
- package/lib/logger/interface.js +10 -3
- package/lib/logger/interface.js.map +1 -1
- package/lib/logger/transport.d.ts +24 -0
- package/lib/logger/transport.js +41 -0
- package/lib/logger/transport.js.map +1 -0
- package/lib/logger/winston.d.ts +17 -9
- package/lib/logger/winston.js +52 -34
- package/lib/logger/winston.js.map +1 -1
- package/package.json +5 -3
package/lib/logger/format.js
CHANGED
|
@@ -52,7 +52,7 @@ function humanReadableTemplateFn(_info) {
|
|
|
52
52
|
let str = "";
|
|
53
53
|
if (info.timestamp)
|
|
54
54
|
str += info.timestamp;
|
|
55
|
-
str += `[${infoString}] ${info.level.padStart(infoPad)}: ${info.message}`;
|
|
55
|
+
str += `[${infoString.toUpperCase()}] ${info.level.padStart(infoPad)}: ${info.message}`;
|
|
56
56
|
if (info.context !== undefined)
|
|
57
57
|
str += " " + logCtxToString(info.context);
|
|
58
58
|
if (info.error !== undefined)
|
package/lib/logger/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/logger/format.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAE,cAAc,EAAU,MAAM,WAAW,CAAC;AAChE,OAAO,EAAiB,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,WAAW,CAAC;AAE9C,MAAM,EAAC,MAAM,EAAC,GAAG,OAAO,CAAC;AAezB,MAAM,UAAU,SAAS,CAAC,IAAoB;IAC5C,QAAQ,IAAI,CAAC,MAAM,EAAE;QACnB,KAAK,MAAM;YACT,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAE7B,KAAK,OAAO,CAAC;QACb;YACE,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;KACvC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAoB;IAClD,OAAO,MAAM,CAAC,OAAO,CACnB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EACtD,MAAM,CAAC,QAAQ,EAAE,EACjB,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAoB;IAC3C,MAAM,EAAC,eAAe,EAAC,GAAG,IAAI,CAAC;IAE/B,QAAQ,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,EAAE;QAC/B,KAAK,mBAAmB,CAAC,SAAS;YAChC,OAAO;gBACL,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;oBAClB,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;oBACtD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QAEJ,KAAK,mBAAmB,CAAC,WAAW,CAAC;QACrC;YACE,OAAO,MAAM,CAAC,SAAS,CAAC,EAAC,MAAM,EAAE,qBAAqB,EAAC,CAAC,CAAC;KAC5D;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAoB;IACzC,OAAO,MAAM,CAAC,OAAO,CACnB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACnD,gEAAgE;IAChE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,KAAwB,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAsB,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EAAE,EACJ,MAAM,CAAC,IAAI,EAAE,CACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,oGAAoG;AACpG,SAAS,uBAAuB,CAAC,KAA2D;IAC1F,MAAM,IAAI,GAAG,KAAwB,CAAC;IAEtC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;IAEvD,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,IAAI,IAAI,CAAC,SAAS;QAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;IAE1C,GAAG,IAAI,IAAI,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/logger/format.ts"],"names":[],"mappings":"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"}
|
package/lib/logger/index.d.ts
CHANGED
package/lib/logger/index.js
CHANGED
package/lib/logger/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Writable } from "node:stream";
|
|
1
3
|
import { LogData } from "./json.js";
|
|
2
4
|
export declare enum LogLevel {
|
|
3
5
|
error = "error",
|
|
@@ -5,12 +7,20 @@ export declare enum LogLevel {
|
|
|
5
7
|
info = "info",
|
|
6
8
|
verbose = "verbose",
|
|
7
9
|
debug = "debug",
|
|
8
|
-
|
|
10
|
+
silly = "silly"
|
|
9
11
|
}
|
|
10
12
|
export declare const logLevelNum: {
|
|
11
13
|
[K in LogLevel]: number;
|
|
12
14
|
};
|
|
13
15
|
export declare const LogLevels: LogLevel[];
|
|
16
|
+
export declare const customColors: {
|
|
17
|
+
error: string;
|
|
18
|
+
warn: string;
|
|
19
|
+
info: string;
|
|
20
|
+
verbose: string;
|
|
21
|
+
debug: string;
|
|
22
|
+
silly: string;
|
|
23
|
+
};
|
|
14
24
|
export declare const defaultLogLevel = LogLevel.info;
|
|
15
25
|
export declare type LogFormat = "human" | "json";
|
|
16
26
|
export declare const logFormats: LogFormat[];
|
|
@@ -35,16 +45,16 @@ export interface ILoggerOptions {
|
|
|
35
45
|
hideTimestamp?: boolean;
|
|
36
46
|
timestampFormat?: TimestampFormat;
|
|
37
47
|
}
|
|
38
|
-
export declare type LoggerChildOpts = {
|
|
39
|
-
module: string;
|
|
40
|
-
};
|
|
41
48
|
export declare type LogHandler = (message: string, context?: LogData, error?: Error) => void;
|
|
42
49
|
export interface ILogger {
|
|
43
50
|
error: LogHandler;
|
|
44
51
|
warn: LogHandler;
|
|
45
52
|
info: LogHandler;
|
|
53
|
+
important: LogHandler;
|
|
46
54
|
verbose: LogHandler;
|
|
47
55
|
debug: LogHandler;
|
|
48
|
-
|
|
56
|
+
silly: LogHandler;
|
|
57
|
+
stream(): Writable;
|
|
58
|
+
child(options: ILoggerOptions): ILogger;
|
|
49
59
|
}
|
|
50
60
|
//# sourceMappingURL=interface.d.ts.map
|
package/lib/logger/interface.js
CHANGED
|
@@ -5,7 +5,7 @@ export var LogLevel;
|
|
|
5
5
|
LogLevel["info"] = "info";
|
|
6
6
|
LogLevel["verbose"] = "verbose";
|
|
7
7
|
LogLevel["debug"] = "debug";
|
|
8
|
-
LogLevel["
|
|
8
|
+
LogLevel["silly"] = "silly";
|
|
9
9
|
})(LogLevel || (LogLevel = {}));
|
|
10
10
|
export const logLevelNum = {
|
|
11
11
|
[LogLevel.error]: 0,
|
|
@@ -13,11 +13,18 @@ export const logLevelNum = {
|
|
|
13
13
|
[LogLevel.info]: 2,
|
|
14
14
|
[LogLevel.verbose]: 3,
|
|
15
15
|
[LogLevel.debug]: 4,
|
|
16
|
-
|
|
17
|
-
[LogLevel.trace]: 5,
|
|
16
|
+
[LogLevel.silly]: 5,
|
|
18
17
|
};
|
|
19
18
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
20
19
|
export const LogLevels = Object.values(LogLevel);
|
|
20
|
+
export const customColors = {
|
|
21
|
+
error: "red",
|
|
22
|
+
warn: "yellow",
|
|
23
|
+
info: "white",
|
|
24
|
+
verbose: "green",
|
|
25
|
+
debug: "pink",
|
|
26
|
+
silly: "purple",
|
|
27
|
+
};
|
|
21
28
|
export const defaultLogLevel = LogLevel.info;
|
|
22
29
|
export const logFormats = ["human", "json"];
|
|
23
30
|
export var TimestampFormatCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/logger/interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/logger/interface.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB;AAED,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;CACpB,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,QAAQ;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;AAG7C,MAAM,CAAC,MAAM,UAAU,GAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAOzD,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,2EAAW,CAAA;IACX,uEAAS,CAAA;AACX,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import TransportStream from "winston-transport";
|
|
3
|
+
import { LogLevel } from "./interface.js";
|
|
4
|
+
export declare enum TransportType {
|
|
5
|
+
console = "console",
|
|
6
|
+
file = "file",
|
|
7
|
+
stream = "stream"
|
|
8
|
+
}
|
|
9
|
+
export declare type TransportOpts = {
|
|
10
|
+
type: TransportType.console;
|
|
11
|
+
level?: LogLevel;
|
|
12
|
+
} | {
|
|
13
|
+
type: TransportType.file;
|
|
14
|
+
level?: LogLevel;
|
|
15
|
+
filename: string;
|
|
16
|
+
rotate?: boolean;
|
|
17
|
+
maxfiles?: number;
|
|
18
|
+
} | {
|
|
19
|
+
type: TransportType.stream;
|
|
20
|
+
level?: LogLevel;
|
|
21
|
+
stream: NodeJS.WritableStream;
|
|
22
|
+
};
|
|
23
|
+
export declare function fromTransportOpts(transportOpts: TransportOpts): TransportStream;
|
|
24
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import winston from "winston";
|
|
2
|
+
import DailyRotateFile from "winston-daily-rotate-file";
|
|
3
|
+
const { transports } = winston;
|
|
4
|
+
export var TransportType;
|
|
5
|
+
(function (TransportType) {
|
|
6
|
+
TransportType["console"] = "console";
|
|
7
|
+
TransportType["file"] = "file";
|
|
8
|
+
TransportType["stream"] = "stream";
|
|
9
|
+
})(TransportType || (TransportType = {}));
|
|
10
|
+
export function fromTransportOpts(transportOpts) {
|
|
11
|
+
switch (transportOpts.type) {
|
|
12
|
+
case TransportType.console:
|
|
13
|
+
return new transports.Console({
|
|
14
|
+
debugStdout: true,
|
|
15
|
+
level: transportOpts.level,
|
|
16
|
+
handleExceptions: true,
|
|
17
|
+
});
|
|
18
|
+
case TransportType.file:
|
|
19
|
+
return transportOpts.rotate
|
|
20
|
+
? new DailyRotateFile({
|
|
21
|
+
level: transportOpts.level,
|
|
22
|
+
//insert the date pattern in filename before the file extension.
|
|
23
|
+
filename: transportOpts.filename.replace(/\.(?=[^.]*$)|$/, "-%DATE%$&"),
|
|
24
|
+
datePattern: "YYYY-MM-DD",
|
|
25
|
+
handleExceptions: true,
|
|
26
|
+
maxFiles: transportOpts.maxfiles,
|
|
27
|
+
})
|
|
28
|
+
: new transports.File({
|
|
29
|
+
level: transportOpts.level,
|
|
30
|
+
filename: transportOpts.filename,
|
|
31
|
+
handleExceptions: true,
|
|
32
|
+
});
|
|
33
|
+
case TransportType.stream:
|
|
34
|
+
return new transports.Stream({
|
|
35
|
+
level: transportOpts.level,
|
|
36
|
+
stream: transportOpts.stream,
|
|
37
|
+
handleExceptions: true,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/logger/transport.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAIxD,MAAM,EAAC,UAAU,EAAC,GAAG,OAAO,CAAC;AAE7B,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;IACb,kCAAiB,CAAA;AACnB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAOD,MAAM,UAAU,iBAAiB,CAAC,aAA4B;IAC5D,QAAQ,aAAa,CAAC,IAAI,EAAE;QAC1B,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;gBAC5B,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;QAEL,KAAK,aAAa,CAAC,IAAI;YACrB,OAAO,aAAa,CAAC,MAAM;gBACzB,CAAC,CAAC,IAAI,eAAe,CAAC;oBAClB,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,gEAAgE;oBAChE,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC;oBACvE,WAAW,EAAE,YAAY;oBACzB,gBAAgB,EAAE,IAAI;oBACtB,QAAQ,EAAE,aAAa,CAAC,QAAQ;iBACjC,CAAC;gBACJ,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;oBAClB,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;QAET,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;gBAC3B,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;KACN;AACH,CAAC"}
|
package/lib/logger/winston.d.ts
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import { ILogger, ILoggerOptions
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Writable } from "node:stream";
|
|
3
|
+
import { ILogger, ILoggerOptions } from "./interface.js";
|
|
4
|
+
import { TransportOpts } from "./transport.js";
|
|
4
5
|
import { LogData } from "./json.js";
|
|
5
|
-
export declare function createWinstonLogger(options?: Partial<ILoggerOptions>, transports?: winston.transport[]): ILogger;
|
|
6
6
|
export declare class WinstonLogger implements ILogger {
|
|
7
|
-
private
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
private winston;
|
|
8
|
+
private _level;
|
|
9
|
+
private _options;
|
|
10
|
+
private _transportOptsArr;
|
|
11
|
+
constructor(options?: Partial<ILoggerOptions>, transportOptsArr?: TransportOpts[]);
|
|
10
12
|
error(message: string, context?: LogData, error?: Error): void;
|
|
11
13
|
warn(message: string, context?: LogData, error?: Error): void;
|
|
12
14
|
info(message: string, context?: LogData, error?: Error): void;
|
|
15
|
+
important(message: string, context?: LogData, error?: Error): void;
|
|
13
16
|
verbose(message: string, context?: LogData, error?: Error): void;
|
|
14
17
|
debug(message: string, context?: LogData, error?: Error): void;
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
silly(message: string, context?: LogData, error?: Error): void;
|
|
19
|
+
profile(message: string, option?: {
|
|
20
|
+
level: string;
|
|
21
|
+
message: string;
|
|
22
|
+
}): void;
|
|
23
|
+
stream(): Writable;
|
|
24
|
+
child(options: ILoggerOptions): WinstonLogger;
|
|
17
25
|
private createLogEntry;
|
|
18
26
|
}
|
|
19
27
|
//# sourceMappingURL=winston.d.ts.map
|
package/lib/logger/winston.js
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
import winston from "winston";
|
|
2
|
-
import
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { defaultLogLevel, LogLevel, logLevelNum } from "./interface.js";
|
|
3
4
|
import { getFormat } from "./format.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
5
|
+
import { TransportType, fromTransportOpts } from "./transport.js";
|
|
6
|
+
const { createLogger } = winston;
|
|
7
|
+
const defaultTransportOpts = { type: TransportType.console };
|
|
7
8
|
export class WinstonLogger {
|
|
8
|
-
constructor(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
constructor(options = {}, transportOptsArr = [defaultTransportOpts]) {
|
|
10
|
+
// `options.level` can override the level in the transport
|
|
11
|
+
// This is necessary for child logger opts to take effect
|
|
12
|
+
let minLevel = options === null || options === void 0 ? void 0 : options.level;
|
|
13
|
+
for (const transportOpts of transportOptsArr) {
|
|
14
|
+
transportOpts.level = getMinLevel(options === null || options === void 0 ? void 0 : options.level, transportOpts.level); // General level may override transport level
|
|
15
|
+
minLevel = getMinLevel(minLevel, transportOpts.level); // Compute the minLevel from general and all transports
|
|
16
|
+
}
|
|
17
|
+
this.winston = createLogger({
|
|
18
|
+
level: (options === null || options === void 0 ? void 0 : options.level) || defaultLogLevel,
|
|
19
|
+
defaultMeta: { module: (options === null || options === void 0 ? void 0 : options.module) || "" },
|
|
17
20
|
format: getFormat(options),
|
|
18
|
-
transports,
|
|
21
|
+
transports: transportOptsArr.map((transportOpts) => fromTransportOpts(transportOpts)),
|
|
19
22
|
exitOnError: false,
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
});
|
|
24
|
+
this._level = minLevel || defaultLogLevel;
|
|
25
|
+
// Store for child logger
|
|
26
|
+
this._options = options;
|
|
27
|
+
this._transportOptsArr = transportOptsArr;
|
|
22
28
|
}
|
|
23
29
|
error(message, context, error) {
|
|
24
30
|
this.createLogEntry(LogLevel.error, message, context, error);
|
|
@@ -29,34 +35,46 @@ export class WinstonLogger {
|
|
|
29
35
|
info(message, context, error) {
|
|
30
36
|
this.createLogEntry(LogLevel.info, message, context, error);
|
|
31
37
|
}
|
|
38
|
+
important(message, context, error) {
|
|
39
|
+
this.createLogEntry(LogLevel.info, chalk.red(message), context, error);
|
|
40
|
+
}
|
|
32
41
|
verbose(message, context, error) {
|
|
33
42
|
this.createLogEntry(LogLevel.verbose, message, context, error);
|
|
34
43
|
}
|
|
35
44
|
debug(message, context, error) {
|
|
36
45
|
this.createLogEntry(LogLevel.debug, message, context, error);
|
|
37
46
|
}
|
|
38
|
-
|
|
39
|
-
this.createLogEntry(LogLevel.
|
|
47
|
+
silly(message, context, error) {
|
|
48
|
+
this.createLogEntry(LogLevel.silly, message, context, error);
|
|
49
|
+
}
|
|
50
|
+
profile(message, option) {
|
|
51
|
+
this.winston.profile(message, option);
|
|
52
|
+
}
|
|
53
|
+
stream() {
|
|
54
|
+
throw Error("Not implemented");
|
|
40
55
|
}
|
|
41
56
|
child(options) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// However, their implementation of child is to merge info objects where parent takes precedence, so it's
|
|
47
|
-
// impossible for child to overwrite 'module' field. Instead the winston class is cloned as defaultMeta
|
|
48
|
-
// overwritten completely.
|
|
49
|
-
// https://github.com/winstonjs/winston/blob/3f1dcc13cda384eb30fe3b941764e47a5a5efc26/lib/winston/logger.js#L47
|
|
50
|
-
const childWinston = Object.create(this.winston);
|
|
51
|
-
childWinston.defaultMeta = defaultMeta;
|
|
52
|
-
return new WinstonLogger(childWinston);
|
|
57
|
+
// Concat module tags
|
|
58
|
+
if (options.module)
|
|
59
|
+
options.module = [this._options.module, options.module].filter(Boolean).join(" ");
|
|
60
|
+
return new WinstonLogger({ ...this._options, ...options }, this._transportOptsArr);
|
|
53
61
|
}
|
|
54
62
|
createLogEntry(level, message, context, error) {
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this.winston
|
|
63
|
+
// don't propagate if silenced or message level is more detailed than logger level
|
|
64
|
+
if (logLevelNum[level] > logLevelNum[this._level]) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this.winston[level](message, { context, error });
|
|
60
68
|
}
|
|
61
69
|
}
|
|
70
|
+
/** Return the min LogLevel from multiple transports */
|
|
71
|
+
function getMinLevel(...levelsArg) {
|
|
72
|
+
const levels = levelsArg.filter((level) => Boolean(level));
|
|
73
|
+
// Only if there are no levels to compute min from, consider defaultLogLevel
|
|
74
|
+
if (levels.length === 0)
|
|
75
|
+
return defaultLogLevel;
|
|
76
|
+
return levels.reduce(
|
|
77
|
+
// error: 0, warn: 1, info: 2, ...
|
|
78
|
+
(minLevel, level) => (logLevelNum[level] > logLevelNum[minLevel] ? level : minLevel));
|
|
79
|
+
}
|
|
62
80
|
//# sourceMappingURL=winston.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"winston.js","sourceRoot":"","sources":["../../src/logger/winston.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"winston.js","sourceRoot":"","sources":["../../src/logger/winston.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAA2B,QAAQ,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAgB,aAAa,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAG/E,MAAM,EAAC,YAAY,EAAC,GAAG,OAAO,CAAC;AAE/B,MAAM,oBAAoB,GAAkB,EAAC,IAAI,EAAE,aAAa,CAAC,OAAO,EAAC,CAAC;AAM1E,MAAM,OAAO,aAAa;IAMxB,YAAY,UAAmC,EAAE,EAAE,mBAAoC,CAAC,oBAAoB,CAAC;QAC3G,0DAA0D;QAC1D,yDAAyD;QACzD,IAAI,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;QAC9B,KAAK,MAAM,aAAa,IAAI,gBAAgB,EAAE;YAC5C,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,6CAA6C;YACrH,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,uDAAuD;SAC/G;QAED,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;YAC1B,KAAK,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,eAAe;YACxC,WAAW,EAAE,EAAC,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,EAAgB;YAC3D,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;YAC1B,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACrF,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,eAAe,CAAC;QAC1C,yBAAyB;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiB,EAAE,KAAa;QACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAiB,EAAE,KAAa;QACpD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAiB,EAAE,KAAa;QACpD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,OAAe,EAAE,OAAiB,EAAE,KAAa;QACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,OAAiB,EAAE,KAAa;QACvD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiB,EAAE,KAAa;QACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiB,EAAE,KAAa;QACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,MAAyC;QAChE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAuB;QAC3B,qBAAqB;QACrB,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtG,OAAO,IAAI,aAAa,CAAC,EAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,EAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnF,CAAC;IAEO,cAAc,CAAC,KAAe,EAAE,OAAe,EAAE,OAAiB,EAAE,KAAa;QACvF,kFAAkF;QAClF,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACjD,OAAO;SACR;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;IACjD,CAAC;CACF;AAED,uDAAuD;AACvD,SAAS,WAAW,CAAC,GAAG,SAAmC;IACzD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAqB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9E,4EAA4E;IAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,CAAC;IAEhD,OAAO,MAAM,CAAC,MAAM;IAClB,kCAAkC;IAClC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CACrF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.1.0
|
|
14
|
+
"version": "1.1.0",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": "./lib/index.js",
|
|
17
17
|
"files": [
|
|
@@ -44,7 +44,9 @@
|
|
|
44
44
|
"case": "^1.6.3",
|
|
45
45
|
"chalk": "^4.1.2",
|
|
46
46
|
"js-yaml": "^3.13.1",
|
|
47
|
-
"winston": "^3.3.3"
|
|
47
|
+
"winston": "^3.3.3",
|
|
48
|
+
"winston-daily-rotate-file": "^4.5.5",
|
|
49
|
+
"winston-transport": "^4.3.0"
|
|
48
50
|
},
|
|
49
51
|
"devDependencies": {
|
|
50
52
|
"@types/js-yaml": "^3.12.1",
|
|
@@ -57,5 +59,5 @@
|
|
|
57
59
|
"beacon",
|
|
58
60
|
"blockchain"
|
|
59
61
|
],
|
|
60
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "90a92dd74f6615d738e47327dee2a703a6be3dc6"
|
|
61
63
|
}
|