koc*_*ude 10 command-line-arguments node.js
从命令行启动节点时如何设置节点的日志级别?我承认,我是一个node.js新手,但寻找类似的东西node myapp.js --loglevel warn
小智 5
您可以覆盖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);
},
};
Run Code Online (Sandbox Code Playgroud)
然后您可以console照常使用这些功能并使用globals.logLevel="warn",...设置 logLevel
小智 1
可能不完全是你想要的,但你可以通过首先设置 NODE_DEBUG 环境变量来启用节点内的调试。
例如export NODE_DEBUG="net" && node myapp.js将对网络相关节点操作进行调试。
https://github.com/joyent/node/blob/master/lib/net.js#L66
| 归档时间: |
|
| 查看次数: |
7230 次 |
| 最近记录: |