2

我写了一个非常简单的 Typescript 类。但我无法在控制台中看到记录器。我想知道我做错了什么。我参考了以下链接。 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。

4

1 回答 1

2

默认记录器中有一个错误,设置是异步发生的,所以你必须等到它被正确设置。

目前,一种解决方法是等到下一个滴答声

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.

于 2020-05-14T12:20:28.433 回答