从命令行启动节点时如何设置节点的日志级别?我承认,我是一个 Node.js 新手,但正在寻找类似
node myapp.js --loglevel warn
的东西
您可以覆盖
console.log
、console.debug
、console.error
、console.warn
函数以允许 logLevels。
查看我用打字稿编写的片段:
export const logLevels = ["debug", "log", "warn", "error", "none"] as const;
type LogLevel = (typeof logLevels)[number];
declare global {
var logLevel: LogLevel;
}
const shouldLog = (level: LogLevel) => {
return logLevels.indexOf(level) >= logLevels.indexOf(global.logLevel);
};
global.logLevel = "debug";
const _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"
设置 logLevel
可能不完全是你想要的,但你可以通过首先设置 NODE_DEBUG 环境变量来启用节点内的调试。
例如
export NODE_DEBUG="net" && node myapp.js
将为网络相关节点操作提供调试。