命令行启动节点时如何设置节点的日志级别?我承认,我是一个节点.js新手,但正在寻找类似node myapp.js --loglevel warn
你可以覆盖console.log
、console.debug
、console.error
、console.warn
函数以允许logLevels。
看看我用打字稿写的片段:
export type LogLevel = "debug" | "log" | "warn" | "error" | "none";
let logLevels = ["debug", "log", "warn", "error", "none"];
let shouldLog = (level: LogLevel) => {
// @ts-ignore
return logLevels.indexOf(level) >= logLevels.indexOf(global.logLevel);
};
// @ts-ignore
global.logLevel = "debug";
let _console=console
global.console = {
...global.console,
log: (message?: any, ...optionalParams: any[]) => {
shouldLog("log")&&_console.log(message, ...optionalParams);
},
warn: (message?: any, ...optionalParams: any[]) => {
shouldLog("warn") && _console.warn(message, ...optionalParams);
},
error: (message?: any, ...optionalParams: any[]) => {
shouldLog("error") && _console.error(message, ...optionalParams);
},
debug: (message?: any, ...optionalParams: any[]) => {
shouldLog("debug") && _console.debug(message, ...optionalParams);
},
};
然后你可以像往常一样使用console
函数,并设置日志级别globals.logLevel="warn"
,...
可能不是你所追求的,但您可以通过先设置NODE_DEBUG环境变量来启用节点内的调试。
例如 export NODE_DEBUG="net" && node myapp.js
将为与网络相关的节点操作提供调试。
https://github.com/joyent/node/blob/master/lib/net.js#L66