无法在 deno 记录器的控制台中看到

Unable to see in the console in deno logger

我写了一个非常简单的 Typescript class。但是我无法在控制台中看到记录器。我想知道我做错了什么。我参考了以下link。 https://deno.land/std/log

import * as log from "https://deno.land/std/log/mod.ts";

export class Test1 {

    public show() {
        log.debug("Hello world");
        log.info("Hello world");
        log.warning("Hello world");
        log.error("Hello world");
        log.critical("500 Internal server error");
        console.log("Hello ....")
    }

}

const test = new Test1();
test.show();

请在这种情况下建议我。我正在学习 deno。

默认记录器中存在错误,设置是异步进行的,因此您必须等到它被正确设置。

目前,解决方法是等到下一个价格变动

import * as log from "https://deno.land/std/log/mod.ts";

await new Promise((resolve) => setTimeout(resolve, 0));

export class Test1 {
  /* ... */
}

或设置您自己的记录器:

import * as log from "https://deno.land/std/log/mod.ts";

await log.setup({
  handlers: {
    console: new log.handlers.ConsoleHandler("DEBUG"),
  },
  loggers: {
    // configure default logger available via short-hand methods above
    default: {
      level: "DEBUG",
      handlers: ["console"],
    }
  },
});

const logger = log.getLogger()

export class Test1 {

    public show() {
        logger.debug("Hello world");
        logger.info("Hello world");
        logger.warning("Hello world");
        logger.error("Hello world");
        logger.critical("500 Internal server error");
        console.log("Hello ....")
    }

}

const test = new Test1();
test.show();

更新: 我已经为此提交了一个 PR,希望它很快就会按预期工作。

第二次更新:PR已合并,将于std/0.52.0发布。