从命令行启动 Node 时,如何设置 Node 的日志级别?我承认,我是一个 node.js 新手,但正在寻找像 node myapp.js --loglevel warn
最佳答案
你可以覆盖console.log
,console.debug
,console.error
,console.warn
允许 logLevels 的函数。
看看我用 typescript 写的片段:
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"
设置logLevel,...
关于Node.js 命令行控制台日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12539599/