## 事象 [[deno_std.log]]でログレベルを変更しようとしても変更できない。デフォルトは`INFO`だが、これを`DEBUG`にしたい場合 ```ts import * as log from "log"; export let logger: log.Logger; export function initLogger(level: log.LevelName) { log.setup({ loggers: { default: { level, handlers: ["console"], }, }, }); logger = log.getLogger(); } ``` のようにして ```ts import { initLogger, logger } from "./logger.ts"; initLogger("DEBUG") logger.debug("debug") logger.info("info") logger.warning("warning") logger.error("error") ``` としても`.debug`はもちろんのこと、`.info`から`.error`までも表示されない。 ## 原因 `log.setup`の中で`handlers`を指定していないから。 > [!thinking] setupの第1引数に入るオブジェクトはデフォルト値を持つが、特定プロパティだけ選択してもマージされないからこうなると思われる。 ## 解決方法 `handlers`を追加する。コンソールだけ処理すればいいなら... ```ts import * as log from "log"; export let logger: log.Logger; export function initLogger(level: log.LevelName) { log.setup({ handlers: { console: new log.handlers.ConsoleHandler(level), }, loggers: { default: { level, handlers: ["console"], }, }, }); logger = log.getLogger(); } ```