import log4js from "log4js"; // 日志目录可通过环境变量 LOG_DIR 配置,默认 logs const LOG_DIR = process.env.LOG_DIR || "logs"; log4js.configure({ appenders: { all: { type: "file", filename: `${LOG_DIR}/all.log`, maxLogSize: 102400, pattern: "-yyyy-MM-dd.log", alwaysIncludePattern: true, backups: 3, layout: { type: 'pattern', pattern: '[%d{yyyy-MM-dd hh:mm:ss}] [%p] %m', }, }, error: { type: "file", filename: `${LOG_DIR}/error.log`, maxLogSize: 102400, pattern: "-yyyy-MM-dd.log", alwaysIncludePattern: true, backups: 3, layout: { type: 'pattern', pattern: '[%d{yyyy-MM-dd hh:mm:ss}] [%p] %m', }, }, jobs: { type: "file", filename: `${LOG_DIR}/jobs.log`, maxLogSize: 102400, pattern: "-yyyy-MM-dd.log", alwaysIncludePattern: true, backups: 3, layout: { type: 'pattern', pattern: '[%d{yyyy-MM-dd hh:mm:ss}] [%p] %m', }, }, console: { type: "console", layout: { type: "pattern", pattern: '\x1b[36m[%d{yyyy-MM-dd hh:mm:ss}]\x1b[0m \x1b[1m[%p]\x1b[0m %m', }, }, }, categories: { jobs: { appenders: ["console", "jobs"], level: "info" }, error: { appenders: ["console", "error"], level: "error" }, default: { appenders: ["console", "all", "error"], level: "all" }, }, }); // 导出常用 logger 实例,便于直接引用 export const logger = log4js.getLogger(); // default export const jobLogger = log4js.getLogger('jobs'); export const errorLogger = log4js.getLogger('error');