Logging 如何使用Deno登录到文件

Logging 如何使用Deno登录到文件,logging,deno,Logging,Deno,我不理解deno日志api。有人能解释一下吗? 我正在尝试将所有消息(错误、警告、信息等)记录到一个文件中。有时间戳也很好 下面是一些代码,基本上来自文档中的示例没有任何内容写入日志文件 import * as log from "https://deno.land/std/log/mod.ts"; async function startLogger() { await log.setup({ handlers: { console: new log.handlers

我不理解deno日志api。有人能解释一下吗? 我正在尝试将所有消息(错误、警告、信息等)记录到一个文件中。有时间戳也很好

下面是一些代码,基本上来自文档中的示例没有任何内容写入日志文件

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

async function startLogger() {
  await log.setup({
    handlers: {
      console: new log.handlers.ConsoleHandler("DEBUG"),

      file: new log.handlers.FileHandler("WARNING", {
        filename: "./logTest.txt",
        // you can change format of output message using any keys in `LogRecord`
        formatter: "{levelName} {msg}",
      }),
    },

    loggers: {
      // configure default logger available via short-hand methods above
      default: {
        level: "DEBUG",
        handlers: ["console", "file"],
      },

      tasks: {
        level: "ERROR",
        handlers: ["console"],
      },
    },
  });
      // get default logger
      const logger = log.getLogger();
      return logger
}

var logger = await startLogger()

logger.debug('debug should this show up in a file?')
logger.error('error should this show up in a file?')
logger.warning('warn should this show up in a file?')
logger.info('warn should this show up in a file?')


FileHandler
每30秒刷新一次磁盘。如果您等待30秒,您将看到正在写入数据

从文件中:

此处理程序使用缓冲区写入文件,并将自动 每30秒刷新一次,不过你可以用
fileHandler.flush()
。记录日志级别大于的消息 错误将立即刷新


所以看起来只有错误和警告被记录到文件中。为什么没有调试消息?因为在
文件处理程序
级别中有
警告
。如何将所有内容(包括调试和信息)都转到文件?在文件处理程序设置中使用
调试
而不是
警告
。面临相同的问题。即使30秒后,我的日志文件也不会更新。
deno run --allow-write --allow-read testLogger.js