12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- const log4js = require('log4js')
- const {format} = require('date-fns');
- const {zonedTimeToUtc, utcToZonedTime} = require('date-fns-tz');
- const EASTERN_EIGHT_ZONE = 'Asia/Shanghai';
- log4js.addLayout('customLayout', (config) => {
- return (logEvent) => {
- // 转换为东八区时间
- const zonedDate = utcToZonedTime(logEvent.startTime, EASTERN_EIGHT_ZONE);
- // 格式化时间
- const formattedDate = format(zonedDate, 'yyyy-MM-dd HH:mm:ss.SSS', { timeZone: EASTERN_EIGHT_ZONE });
- return `${formattedDate} ${logEvent.level} [${logEvent.categoryName}] ${logEvent.data}`;
- };
- });
- // 配置 log4js
- log4js.configure({
- //输出格式
- appenders: {
- nodeFile: {
- type: 'dateFile',
- filename: 'logs/node/application.log', // 指定日志文件的路径和基本名称
- pattern: '.yyyy-MM-dd', // 文件名后缀的日期格式
- compress: true, // 当日志文件滚动时,压缩(归档)旧文件
- numBackups: 30, // 保留30个备份文件
- keepFileExt: true, // 保持文件扩展名
- layout: {
- // type: 'pattern',
- type: 'customLayout',
- pattern: `%d{yyyy-MM-dd hh:mm:ss.SSS} [%p] %c - %m`,
- }
- },
- console: {
- type: 'console',
- layout: {
- // type: 'pattern',
- type: 'customLayout',
- pattern: `%d{yyyy-MM-dd hh:mm:ss.SSS} [%p] %c - %m`,
- }
- }
- },
- //TRACE>DEBUG>INFO >WARN>ERROR>FATAL\
- //default 代表默认的日志对象 : log4js.getLogger();
- //日志对象
- categories: {
- //控制台输出对象
- default: {
- appenders: ['console', 'nodeFile'],
- level: 'TRACE'
- },
- // //文件输出对象
- // infoFile: {
- // appenders: ['fileAppender'],
- // level: 'DEBUG'
- // }
- }
- });
- // 获取默认logger(控制台)
- const logger = log4js.getLogger();
- // 获取记录info级别日志到文件的logger
- // const fileLogger = log4js.getLogger('infoFile');
- module.exports = {logger};
|