inint
This commit is contained in:
@@ -1,15 +1,88 @@
|
||||
import log4js from "log4js";
|
||||
import log4js from 'log4js'
|
||||
|
||||
// ── 日志目录(相对于进程工作目录,PM2 启动时建议设置 cwd 为 module/server) ──
|
||||
const LOG_DIR = process.env.LOG_DIR || 'logs'
|
||||
const LOG_LEVEL = process.env.LOG_LEVEL || 'info'
|
||||
|
||||
/**
|
||||
* log4js 配置:
|
||||
* - console : 控制台彩色输出(开发期友好)
|
||||
* - file : logs/app.log —— 所有 ≥ info 的日志,按天轮转,保留 30 天
|
||||
* - error : logs/error.log —— 仅 warn/error,按天轮转,保留 60 天
|
||||
*
|
||||
* 生产环境可通过环境变量控制:
|
||||
* LOG_DIR 日志目录 默认 logs
|
||||
* LOG_LEVEL 日志级别 默认 info
|
||||
*/
|
||||
export const configure = {
|
||||
appenders: {
|
||||
console: {type: "console"},
|
||||
// 控制台
|
||||
console: {
|
||||
type: 'console',
|
||||
layout: {
|
||||
type: 'pattern',
|
||||
pattern: '%[[%d{hh:mm:ss}] [%p] [%c]%] %m',
|
||||
},
|
||||
},
|
||||
|
||||
// 全量文件日志(按日期轮转)
|
||||
file: {
|
||||
type: 'dateFile',
|
||||
filename: `${LOG_DIR}/app`,
|
||||
pattern: '.yyyy-MM-dd.log',
|
||||
alwaysIncludePattern: true,
|
||||
layout: {
|
||||
type: 'pattern',
|
||||
pattern: '[%d{yyyy-MM-dd hh:mm:ss}] [%p] [%c] %m',
|
||||
},
|
||||
numBackups: 30, // 保留最近 30 天
|
||||
compress: true, // 压缩旧日志
|
||||
keepFileExt: false,
|
||||
},
|
||||
|
||||
// 错误日志(仅 WARN / ERROR)
|
||||
errorFile: {
|
||||
type: 'dateFile',
|
||||
filename: `${LOG_DIR}/error`,
|
||||
pattern: '.yyyy-MM-dd.log',
|
||||
alwaysIncludePattern: true,
|
||||
layout: {
|
||||
type: 'pattern',
|
||||
pattern: '[%d{yyyy-MM-dd hh:mm:ss}] [%p] [%c] %m',
|
||||
},
|
||||
numBackups: 60, // 保留 60 天
|
||||
compress: true,
|
||||
},
|
||||
|
||||
// 过滤器:只让 WARN 及以上进入 errorFile
|
||||
errorFilter: {
|
||||
type: 'logLevelFilter',
|
||||
appender: 'errorFile',
|
||||
level: 'warn',
|
||||
},
|
||||
},
|
||||
|
||||
categories: {
|
||||
default: {appenders: ["console"], level: "ALL"},
|
||||
// 开发模式:只输出到控制台
|
||||
default: {
|
||||
appenders: process.env.NODE_ENV === 'production'
|
||||
? ['console', 'file', 'errorFilter']
|
||||
: ['console'],
|
||||
level: LOG_LEVEL,
|
||||
},
|
||||
|
||||
// MySQL 日志独立分类(可在需要时调整级别)
|
||||
mysql: {
|
||||
appenders: process.env.NODE_ENV === 'production'
|
||||
? ['file', 'errorFilter']
|
||||
: ['console'],
|
||||
level: 'warn', // MySQL 日志默认只记录 warn 及以上
|
||||
},
|
||||
},
|
||||
}
|
||||
log4js.configure(configure)
|
||||
export const manager = log4js
|
||||
export const mysql = log4js.getLogger("mysql")
|
||||
export const koa = log4js.getLogger("koa")
|
||||
|
||||
log4js.configure(configure)
|
||||
|
||||
export const manager = log4js
|
||||
export const mysql = log4js.getLogger('mysql')
|
||||
export const koa = log4js.getLogger('koa')
|
||||
|
||||
Reference in New Issue
Block a user