【问题标题】:Deno logger FileHandler not writing to fileDeno logger FileHandler 不写入文件
【发布时间】:2021-05-16 12:16:53
【问题描述】:

我正在尝试为应用设置一些记录器。我有一个console 处理程序,它将每个日志写入控制台。还有一个 app 处理程序,它应该将任何日志写入某个文件。

日志已正确写入控制台,但没有写入任何文件,我不明白为什么。

import { setup as loggerSetup, getLogger } from "https://deno.land/std/log/mod.ts";
import {
  ConsoleHandler,
  FileHandler,
} from "https://deno.land/std/log/handlers.ts";
import { ensureDir } from "https://deno.land/std/fs/ensure_dir.ts";

const logDir = Deno.env.get("LOG_DIR") || "./logs";

await ensureDir(logDir);

const consoleLoggerHandler = new ConsoleHandler("DEBUG");
const applicationLoggerHandler = new FileHandler("DEBUG", {
  filename: logDir + "/application.log",
  formatter: "{msg}",
});
const errorLoggerHandler = new FileHandler("WARNING", {
  filename: logDir + "/errors.log",
});

await loggerSetup({
  handlers: {
    console: consoleLoggerHandler,
    app: applicationLoggerHandler,
    errors: errorLoggerHandler,
  },
  loggers: {
    default: {
      level: "DEBUG",
      handlers: ["console", "app"],
    },
    app: {
      level: "INFO",
      handlers: ["app"],
    },
    error: {
      level: "WARNING",
      handlers: ["errors"],
    },
  },
});

export const logger = getLogger();
export const appLogger = getLogger("app");
export const errorLogger = getLogger("error");

【问题讨论】:

  • 你有什么错误吗?
  • 不,什么都没有
  • 你能试试这个吗:errorLogger.warning('sample warning');
  • 我也面临同样的错误。我的控制台日志工作正常,但文件没有。正如文档中建议的那样,文件句柄刷新每 30 秒调用一次,但即使在 30 秒后,我的日志文件也没有更新。

标签: typescript logging deno


【解决方案1】:

您必须调用applicationLoggerHandler.flush() 方法才能写入文件。

【讨论】:

    猜你喜欢
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多