如何通过命令行控制Deno std/log模块的日志级别?
让Deno std/log输出Debug日志的解决方法
你使用的deno run -A --log-level=DEBUG命令中,--log-level是控制Deno自身CLI的日志输出级别,和std/log模块的日志系统不相关,所以无法触发debug级别的日志输出。要让代码输出log.debug("Hello world"),需要显式配置std/log模块的日志级别:
解决方案:配置std/log的日志级别
修改代码,通过log.setup()方法配置默认logger的级别为DEBUG:
import * as log from "https://deno.land/std@0.173.0/log/mod.ts"; // 配置默认日志器的级别为DEBUG,使用控制台输出 await log.setup({ handlers: { console: new log.handlers.ConsoleHandler("DEBUG"), }, loggers: { default: { level: "DEBUG", handlers: ["console"], }, }, }); log.debug("Hello world"); log.info(123456); log.warning(true); log.error({ foo: "bar", fizz: "bazz" }); log.critical("500 Internal server error");
说明
log.setup()会初始化日志系统,这里我们指定控制台处理器的最低输出级别为DEBUG,同时让默认日志器使用这个处理器,并且自身级别也设为DEBUG。- 运行时无需再添加
--log-level=DEBUG参数,直接执行deno run -A your-file.js即可看到debug日志输出。
内容的提问来源于stack exchange,提问作者Wenpin CHOU
相关产品推荐
相关产品推荐

