You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

63 lines
1.9 KiB

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');