Deno 记录器 FileHandler 不写入文件
Deno logger FileHandler not writing to file
我正在尝试为某个应用设置一些记录器。我有一个 console
处理程序,它将每个日志写入控制台。还有一个 app
处理程序,它应该将任何日志写入某个文件。
日志已正确写入控制台,但 none 的文件已写入,我不明白为什么。
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");
您必须调用 applicationLoggerHandler.flush()
方法才能写入文件。
我正在尝试为某个应用设置一些记录器。我有一个 console
处理程序,它将每个日志写入控制台。还有一个 app
处理程序,它应该将任何日志写入某个文件。
日志已正确写入控制台,但 none 的文件已写入,我不明白为什么。
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");
您必须调用 applicationLoggerHandler.flush()
方法才能写入文件。